很多人说Thread类不能共享资源,其实并不是不能,只是不适合,不信看这个买票程序
class MyThread extends Thread{
Ticket ticket; //注意,此ticket是一个类,不是intpublic MyThread(Ticket ticket){
this.ticket=ticket;
}
public void run(){
for(int i=1;i<=100;i++){
synchronized(ticket){
if(ticket.num>0)
System.out.println("还剩"+(--ticket.num)+"张票");
}
}
}
}
class Ticket{
int num=100;
}
public class Test{
public static void main(String[] args){
Ticket ticket=new Ticket();
MyThread mt1=new MyThread(ticket);
MyThread mt2=new MyThread(ticket);
mt1.start();
mt2.start();
}
}
我认为之所以不适合只是因为麻烦而已,并没有很大影响