返回首页

在线程。我想分配给当前线程的锁。
NBSP
之前由当前线程获得锁,我想锁很忙,以前是免费的..

请帮......... ....我想要的代码...:8186541 |会员

回答

评论会员:游客 时间:2012/02/05
锁分配有没有这样的概念。锁不能繁忙或免费。你可能会认为是非常不同的概念。(NET)在C/CLI可以锁或System.Threading.ReaderWriterLockSlim,在原生C,它可以是CriticalSection或Mutex(见,例如imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif)正确的编程做法是只有一个mdash;夹一些,以获得(P)和释放(五)一些类型的线程同步对象之间共享资源的访问上面提到的,锁的"P"和"V"是原有条款由,EdsgerWybe的Dijkstra({A}])的缩写,从荷兰的"等待"和"释放"。因此,在伪代码,它看起来像这样:codeprelang="pseudocode"methodAccessSharedResource(){Lock.P();spanclass="code-keyword"try/span{WorkWithSharedResource();}spanclass="code-keyword"finally/span{Lock.V();}endexception}endmethodAccessSharedResource/pre/code一个由多个线程运行的功能AccessSharedResource是一次所有线程也可以使用相同的实例的锁锁,这种结构的目标是让所有的线程调用WorkWithSharedResource,但在一个时间只有一个线程。此外,所有的线程必须等待轮到自己要消耗CPU时间为零。所有这些原语的工作线程。同一进程中的一些同步线程,其他​​一些可以做相同的线程属于不同的进程(名为互斥可以做到这一点,它被命名为全系统的唯一标识,因为需要确定线程进程是孤立的和所有引用/指针/处理才有意义withing他们的过程mdash;地址空间隔离;相同数值的地址是指在不同的进程中不同的地址)。无论如何,在任何情况下,这些同步原语的影响,只有线程。A至P,呼叫阻塞。如果只有一个线程,这个函数立即返回,但这个线程获得锁。下一个线程阻塞在此呼吁:操作系统切换关闭和保留在特殊的浪费任何CPU时间的等待状态。实际上,操作系统从未安排等待线程执行,直到一个线程是唤醒。如中止(NET中的特殊手段,它可以被唤醒;也有一个类似Windows中的技术有关的异常播种方法mdash;它会采取一个整体的大文章,以解释它是如何工作的),超时到期,mdash;主要的事情mdash;由另一个线程进行调用到V。实际上,在此调用,操作系统马上看起来队列在线程等待锁相同的实例积累,采队列中的第一,它执行返回到工作状态和进度。新的线程进入P和V之间的区域,在这种情况下,调用WorkWithSharedResource。其余的等待线程仍处于观望状态,直到下一次被惊醒。操作系统在这种方式,保证所有的线程传递,试图最大限度地提高吞吐量和保证在一个时间只有一个线程可以访问共享资源。mdash;的SA
ASHISH特亚吉40
评论会员:游客 时间:2012/02/05
首先你不能指定一个线程锁(除非内核调整),一个线程可以获取锁。和锁只有忙碌(忙碌是不正确的字)时,它已经收购一些另一个线程。为了模拟这种情况下,你需要创建两个线程,获得锁定我的一个睡眠线程,当试图获取另一个线程锁,然后你会发现忙锁。那么你应该提高你的问题,何况你的操作系统(WIN,LINUX等)为更准确的答案。好运{S0}