【发布时间】:2017-02-07 20:13:24
【问题描述】:
我正在编写一个多线程程序,我想使用锁。问题是程序在一个线程上运行,我想要一个线程来获取锁,暂停第一个线程,然后在从第三个线程调用方法时解锁它。我尝试了很多不同的东西,但都没有奏效。我该怎么做?
编辑:
改写问题
【问题讨论】:
-
一个对象不锁,一个线程锁。
-
@SotiriosDelimanolis 锁
lock.lock()使线程获取锁,然后下一个尝试获取锁的线程必须等到锁被lock.unlock()释放 -
哪个线程执行
lock.lock()? -
@SotiriosDelimanolis 控制。看代码
-
No. 假设您指的是
control.lock();,那么您是从ControlThreadobject 调用lock方法,但这不是执行该代码的 thread。执行代码的线程对应于program引用的Thread对象。
标签: java multithreading locking