多线程的同步
多线程同步可以使用synchronized关键字实现
当synchronized关键字修饰一个方法时,就叫同步方法
当synchronized方法执行完或发生异常,会自动释放锁
package com.cs;
public class Test {
public static void main(String[] args) {
DinnerWindows d = new DinnerWindows();
d.setName("一号窗口:");
DinnerWindows w = new DinnerWindows();
w.setName("二号窗口:");
d.start();
w.start();
}
}
package com.cs;
public class DinnerWindows extends Thread{
private static int count =50;
public void run(){
sell();
}
synchronized public void sell(){
while (count>0) {
count--;
System.out.println("当前窗口:"+Thread.currentThread().getName()+"剩余:"+count+"份");
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}