runnable
将共享数据和操作数据的方法一并封装到Runnable的实现子类中,然后在主方法中new其实例对象,将这个实例对象传个创建的两个匿名Thread对象,并开启运行。为何出现诡异的结果呢?麻烦大家帮忙看看!谢谢先!
public class SaleTickets{ //static Tickets tickets = new Tickets();//这里和(1)处除了他是随类的创建而创建, //存储在静态区,以及共享外还有什么区别吗? public static void main(String[] args) { Tickets tickets = new Tickets();//(1) new Thread(tickets).start();//调用tickets身上的run方法将count-- new Thread(tickets).start();//也是调用tickets身上的run方法将count-- }}//将共享数据和操作数据的方法一并封装到Runnable的实现子类中class Tickets implements Runnable{ private int count = 10000; @Override public /*synchronized*/ void run(){//这里为何加上同步另外一个进程就无法启动呢? while(true){ count--; System.out.println(Thread.currentThread().getName()+"|"+count); } }}