Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java并发编程_Java - Fatal编程技术网

Java并发编程

Java并发编程,java,Java,是发生上下文切换时线程保留的锁。 当我们调用wait()时,线程会放弃锁,当有上下文切换时会发生什么 谢谢是的,在上下文切换期间会保留锁。事实上,这就是锁的全部意义 当线程调用wait时,它将放弃锁。当wait返回时,会重新获得锁,因此您可以保证当控件返回到线程时,它会持有您期望的所有锁。调用wait()的线程将挂起,直到其他线程调用对象上的notify*()。此时,当另一个上下文切换发生时,wait()调用将返回,等待的线程将立即尝试重新获取锁,然后再继续。+1,但对于并行处理器,锁还承担支持

是发生上下文切换时线程保留的锁。 当我们调用wait()时,线程会放弃锁,当有上下文切换时会发生什么


谢谢

是的,在上下文切换期间会保留锁。事实上,这就是锁的全部意义


当线程调用
wait
时,它将放弃锁。当wait返回时,会重新获得锁,因此您可以保证当控件返回到线程时,它会持有您期望的所有锁。

调用
wait()
的线程将挂起,直到其他线程调用对象上的
notify*()
。此时,当另一个上下文切换发生时,
wait()
调用将返回,等待的线程将立即尝试重新获取锁,然后再继续。

+1,但对于并行处理器,锁还承担支持跨并行进程/线程互斥的额外责任。i、 上下文切换不是并行化的要求。无论哪种方式,“上下文切换”都不是一个非常面向Java的概念。Java线程并没有要求发生上下文切换。