Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 线程调度与同步 P>线程调度器有可能将持有锁的线程调度到同步< /强>块,并在执行它的中间吗?如果是,那么非计划是否会导致线程释放锁?假设线程不调用方法,如wait/yield等_Java_Multithreading_Operating System_Synchronization_Thread Synchronization - Fatal编程技术网

Java 线程调度与同步 P>线程调度器有可能将持有锁的线程调度到同步< /强>块,并在执行它的中间吗?如果是,那么非计划是否会导致线程释放锁?假设线程不调用方法,如wait/yield等

Java 线程调度与同步 P>线程调度器有可能将持有锁的线程调度到同步< /强>块,并在执行它的中间吗?如果是,那么非计划是否会导致线程释放锁?假设线程不调用方法,如wait/yield等,java,multithreading,operating-system,synchronization,thread-synchronization,Java,Multithreading,Operating System,Synchronization,Thread Synchronization,我一直在试图了解同步块在读更新写操作中的作用?如果进入同步块的线程不能被取消调度,那么就更容易理解了,但是如果可以,那么可见性的问题就出现了,因为可能是这样的情况:变量已经被线程更新了,但没有写入主内存,线程调度程序取消了它的调度,而其他线程获得了锁并在内存中更新了变量主存储器。 有什么消息吗。在JLS中,关于相同的问题 线程调度程序是否可以取消持有[锁]的线程的调度 是的,这可能在许多国家先发制人。如果线程进行阻塞系统调用(例如,等待输入),则必须发生这种情况 如果是,那么非计划是否会导致线程

我一直在试图了解同步块在读更新写操作中的作用?如果进入同步块的线程不能被取消调度,那么就更容易理解了,但是如果可以,那么可见性的问题就出现了,因为可能是这样的情况:变量已经被线程更新了,但没有写入主内存,线程调度程序取消了它的调度,而其他线程获得了锁并在内存中更新了变量主存储器。 有什么消息吗。在JLS中,关于相同的问题

线程调度程序是否可以取消持有[锁]的线程的调度

是的,这可能在许多国家先发制人。如果线程进行阻塞系统调用(例如,等待输入),则必须发生这种情况

如果是,那么非计划是否会导致线程释放锁

绝对不是!这将破坏锁定的目的,并破坏大多数多线程程序


外卖:让你的关键部分尽可能短!不要让线程B、C、D和E在线程A被阻塞执行长时间计算(或者更糟糕的是,等待输入)时,都被阻塞,等待线程A释放一些锁

线程调度程序是否可以取消持有[锁]的线程的调度

是的,这可能在许多国家先发制人。如果线程进行阻塞系统调用(例如,等待输入),则必须发生这种情况

如果是,那么非计划是否会导致线程释放锁

绝对不是!这将破坏锁定的目的,并破坏大多数多线程程序


外卖:让你的关键部分尽可能短!不要让线程B、C、D和E在线程A被阻止执行长时间计算(或者更糟糕的是,等待输入)时都被阻止,等待线程A释放一些锁。

“线程调度程序”通常遵循A(也称为调度算法),从中可以选择很多。在某些操作系统中,调度规程可以是可配置的,可以在运行时更改,和/或对于不同的线程/进程组可能有所不同。“线程调度器”通常遵循一种(也称为调度算法),可以从中选择许多。在某些操作系统中,调度规程可能是可配置的,可能在运行时更改,和/或对于不同的线程/进程组可能不同。回答非常好,正确,(本主题中经常缺少的内容:)。回答非常好,正确,(本主题中经常缺少的内容:)。