Java-尝试暂停线程
可能重复:Java-尝试暂停线程,java,multithreading,synchronization,Java,Multithreading,Synchronization,可能重复: 有什么问题吗 private final Object lock; public synchronized void run() { while (numItersCompleted < maxNumIters) { while (guiState == GuiState.PAUSED) { try { lock.wait(); // problematic line 您没有在锁周围进
有什么问题吗
private final Object lock;
public synchronized void run() {
while (numItersCompleted < maxNumIters) {
while (guiState == GuiState.PAUSED) {
try {
lock.wait(); // problematic line
您没有在锁周围进行
同步
public void run() {
while (numItersCompleted < maxNumIters) {
while (guiState == GuiState.PAUSED) {
try {
synchronized (lock) {
lock.wait(); // problematic line
}
public void run(){
while(numItersCompleted
我本来打算添加一个链接,但Gary向我打赌这是一个重复的问题。你不能对对象执行
wait()
或notify()
,除非你处于synchronized(lock)
块中。你在上进行了同步,但你在上等待了lock
。
public void run() {
while (numItersCompleted < maxNumIters) {
while (guiState == GuiState.PAUSED) {
try {
synchronized (lock) {
lock.wait(); // problematic line
}