1概览
2 实现代码。 并行, 两个cpu干活; 并发,一个cpu干很多活。
thread.sleep 不释放锁, object.wait 释放锁
t.start() 转运行态; t.run(), 相当于调用函数。
public class Test{
public static int sum = 0;
public final static Object object = new Object();
public static void main(String[] args) throws InterruptedException{
// 初始状态
Thread thread1 = new Thread(){
@Override
public void run() {
// 锁池队列
synchronized (object){
try {
object.wait();
sum++;
}catch (InterruptedException e){
}
}
}
};
Thread thread2 = new Thread(){
@Override
public void run() {
synchronized (object){
// 等待队列
object.notify();
}
}
};
// 可运行状态
thread1.start();
thread2.start();
// 阻塞状态
thread1.join();
thread2.join();
System.out.println(sum);
}
}