Java多线程编程核心技术(第二版),2. 2. 18,学习笔记
内容:同步synchronized方法无限等待问题与解决方案
死锁demo:
Service.java
public class Service {
synchronized public void methodA() {
System.out.println(" methodA begin");
boolean isContinueRun = true;
while (isContinueRun) {
}
System.out.println(" methodA end");
}
synchronized public void methodB() {
System.out.println(" methodB begin");
System.out.println(" methodB end");
}
}
ThreadA.java
public class ThreadA extends Thread{
private Service service;
public ThreadA(Service service) {
super();
this.service = service;
}
@Override
public void run() {
super.run();
service.methodA();
}
}
ThreadB.java
public class ThreadB extends Thread{
private Servi