Java工作线程模型
我想实现一个工作线程池,它处理输入字符串并处于空闲(无cpu)模式,直到我传递另一个输入字符串。Java工作线程模型,java,multithreading,worker,Java,Multithreading,Worker,我想实现一个工作线程池,它处理输入字符串并处于空闲(无cpu)模式,直到我传递另一个输入字符串。 我为worker编写了下面的代码,但出现了错误 public class Worker implements Runnable { private String data =null; public void setData(String data) { this.data = data; notify(); } @Override public void run() {
我为worker编写了下面的代码,但出现了错误
public class Worker implements Runnable {
private String data =null;
public void setData(String data) {
this.data = data;
notify();
}
@Override
public void run() {
while (true){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("data = " + data);
}
}
打电话
Worker worker = new Worker();
Thread thr = new Thread(worker);
thr.start();
Thread.sleep(5000);
worker.setData("11111");
Thread.sleep(5000);
worker.setData("2222");
以及如何检查工作人员是否忙。谢谢您需要将wait()和notify()调用放在一个同步块中
static public class Worker implements Runnable {
private String data = null;
public void setData(String data) {
this.data = data;
synchronized(this) {
notify();
}
}
@Override
public void run() {
while (true) {
try {
synchronized(this) {
wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("data = " + data);
}
}
}
你得到了哪个错误?