java中多线程有两种实现方式,一种是继承Thread类,另一种是实现Runnable接口。而要想实现资源共享就只能用第二种方法来做。
class MyThread implements Runnable{
private int ticket = 5;
public void run(){
for(int i = 0; i < 10; i++){
if(ticket>=1){
System.out.println(Thread.currentThread().getName() + ":sell the ticket " + ticket--);
//ticket--;
}else{
break;
}
}
}
}
public class ThreadDemo2{
public static void main(String args[]){
MyThread my = new MyThread();
new Thread(my,"windows1").start();
new Thread(my,"windows2").start();
new Thread(my,"windows3").start();
}
}
运行结果:
如图所示,上面的代码实现了在三个窗口一起卖出5张票的系统设计。但不明白的是为什么卖票的顺序不是5 4 3 2 1,而且有时候会卖出两张5,有时候又不会。后面还要去研究这个资源共享到底是怎么个情况。