?java——线程同步(问题展现)

2019年2月18日23:31:16 发表评论 1,731 views
/**
 * Created by xabcd on 2019/2/18.
 */
public class testsync {
    public static void main(String args[]) {
        erroThread tt = new erroThread();
//启动了4个线程,实现资源共享
          new Thread(tt).start();
          new Thread(tt).start();
          new Thread(tt).start();
          new Thread(tt).start();
//使用 Thread t = new Thread(tt); 结果是一个线程
//        t.start();
    }
}
    class erroThread implements Runnable
    {
        private int tickets = 20;
        public void run() {
            while (true) {

                if (tickets > 0) {
                    try {
                        Thread.sleep(900);
                    } catch (InterruptedException x) {
                    }
                    System.out.println(Thread.currentThread().getName() + "出售票" + tickets--);

                }
            }
        }
    }





结果:
Thread-3出售票18
Thread-0出售票20
Thread-2出售票20
Thread-1出售票19
Thread-3出售票17
Thread-2出售票17
Thread-0出售票15
Thread-1出售票16
Thread-3出售票14
Thread-0出售票13
Thread-2出售票14
Thread-1出售票14
Thread-2出售票12
Thread-1出售票10
Thread-3出售票10
Thread-0出售票11
Thread-3出售票9
Thread-1出售票9
Thread-0出售票9
Thread-2出售票9
Thread-3出售票8
Thread-0出售票8
Thread-2出售票7
Thread-1出售票8
Thread-3出售票6
Thread-1出售票4
Thread-0出售票4
Thread-2出售票5
Thread-0出售票3
Thread-2出售票3
Thread-3出售票2
Thread-1出售票3
Thread-3出售票1
Thread-2出售票1
Thread-1出售票-1
Thread-0出售票0

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: