2011-11-19 92 views
0

我有一个困惑。我在某处读取Thread.yield()方法会导致当前正在运行的线程暂停并给予“相同优先级”剩余线程的机会。收益法混淆

现在总是可以执行相同的优先级线程或更高优先级的线程。如果假设当前正在运行的线程对某个对象有某种锁定,那么在执行yeild方法后它会锁定它?

回答

3

当您调用Thread.yield()时,当前线程暂停并允许调度程序运行不同的线程。优先级由调度程序管理。

不,当然不是 - 你不释放任何锁。这样做会破坏同步。

+0

好的,我明白了你的观点。但是我认为,当前线程暂停并且某个其他线程有机会执行时,那么该线程的优先级是什么。与暂停的线程更高或相同。 – aj983

+0

你不知道,也不能预测它,这是调度程序的工作。 –

+1

你通常不应该打电话收益率 – Kevin