Java 线程挂起并恢复内部运行()
我通过实现Java 线程挂起并恢复内部运行(),java,Java,我通过实现runnable和重写run()实现了多线程。我想挂起run()中的线程 请帮帮我 在void run(){}中我应该做什么?您可能需要Object.wait(),然后是Object.notifyAll(),但正确使用它是一件棘手的事情。仔细阅读。一个好的源代码是Josh Bloch的高效Java。您可能需要对象。wait(),然后对象。notifyAll(),但是正确使用它是一件棘手的事情。仔细阅读。一个好的源代码是Josh Bloch的高效Java。通常的方法是调用另一个线程可以通
runnable
和重写run()
实现了多线程。我想挂起run()
中的线程
请帮帮我
在
void run(){}
中我应该做什么?您可能需要Object.wait()
,然后是Object.notifyAll()
,但正确使用它是一件棘手的事情。仔细阅读。一个好的源代码是Josh Bloch的高效Java。您可能需要对象。wait()
,然后对象。notifyAll()
,但是正确使用它是一件棘手的事情。仔细阅读。一个好的源代码是Josh Bloch的高效Java。通常的方法是调用另一个线程可以通知的某个对象上的wait
。这将是代码的模式:
public void run() {
. . .
// decide to suspend thread execution:
synchronized (LOCK) {
try {
LOCK.wait();
} catch (InterruptedException e) {
// thread was interrupted -- time to return?
}
}
// execution resumes here after interrupt or notify
}
然后另一个线程执行此代码:
synchronized (LOCK) {
LOCK.notify(); // or notifyAll();
}
在这些代码片段中,
LOCK
是两段代码都可以访问的对象。如果使用可用对象来完成任务是有意义的,那么就不需要单独的对象。通常的方法是调用另一个线程可以通知的某个对象上的wait
。这将是代码的模式:
public void run() {
. . .
// decide to suspend thread execution:
synchronized (LOCK) {
try {
LOCK.wait();
} catch (InterruptedException e) {
// thread was interrupted -- time to return?
}
}
// execution resumes here after interrupt or notify
}
然后另一个线程执行此代码:
synchronized (LOCK) {
LOCK.notify(); // or notifyAll();
}
在这些代码片段中,
LOCK
是两段代码都可以访问的对象。如果使用一个可用对象来完成任务是有意义的,那么就不需要单独的对象。如果不知道更多细节,很难判断。但你的选择是:
-并无条件地睡眠一段时间Thread.sleep()
配对等待某个对象wait/notify
- 阻止数据结构,如在集合中出现某些内容时唤醒线程
等待其他线程Thread.join()
- Java5并发抽象,如
-并无条件地睡眠一段时间Thread.sleep()
配对等待某个对象wait/notify
- 阻止数据结构,如在集合中出现某些内容时唤醒线程
等待其他线程Thread.join()
- Java5并发抽象,如
- 不知道更多细节就很难判断。但你的选择是: