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-使用具有多线程的可重入锁_Java_Multithreading_Locking - Fatal编程技术网

Java-使用具有多线程的可重入锁

Java-使用具有多线程的可重入锁,java,multithreading,locking,Java,Multithreading,Locking,我正在制作一个多线程程序,我想使用锁。问题是程序在一个线程上运行,我希望有一个线程能够抓住锁,暂停第一个线程,然后在从第三个线程调用方法时能够解锁它。我尝试了很多不同的方法,但都不管用。我该怎么做 编辑: 重写问题据我所知,您希望一个线程睡眠并等待另一个线程的通知。您应该查看而不是锁定。对象不锁定,线程锁定。@SotiriosDelimanolis lock.lock使线程抓住锁,然后下一个试图抓住锁的线程必须等待锁被lock.unlock释放,哪个线程执行lock.lock?@Sotirios

我正在制作一个多线程程序,我想使用锁。问题是程序在一个线程上运行,我希望有一个线程能够抓住锁,暂停第一个线程,然后在从第三个线程调用方法时能够解锁它。我尝试了很多不同的方法,但都不管用。我该怎么做

编辑:


重写问题

据我所知,您希望一个线程睡眠并等待另一个线程的通知。您应该查看而不是锁定。

对象不锁定,线程锁定。@SotiriosDelimanolis lock.lock使线程抓住锁,然后下一个试图抓住锁的线程必须等待锁被lock.unlock释放,哪个线程执行lock.lock?@SotiriosDelimanolis control。看看密码。假设您指的是control.lock;,您正在从ControlThread对象调用lock方法,但执行该代码的不是该线程。执行代码的线程是与程序引用的线程对象相对应的线程。