被static修饰的成员随着成员的加载而存在于内存的共享区,该成员在本类中被所有对象共享,直到所在类结束才消失。
在本例中如果没加static,就是说每个线程都将分配100张票,但由于static周期过长,要实现此种方法建议用私有化,可以这样写private static int tic=100;
class Ticket implements Runnable
{
//private static int tic=100;
private int tic=100; ///这两种方法都会正常运行 一般情况下建议用私有化, 这样比较节省内存
public void run(){
while(true){
if(tic>0){
System.out.println(Thread.currentThread().getName()+"......."+tic--);
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t=new Ticket();//创建线程
Thread t1=new Thread(t);
Thread t2=new Thread(t);
Thread t3=new Thread(t);
Thread t4=new Thread(t);
t1.start();//运行线程
t2.start();
t3.start();
t4.start();
|