JAVA问题:这两个线程为什么不同时进行,而只有第一个线程运行直到结束

2024-11-17 21:19:57
推荐回答(4个)
回答1:

你把2个线程的启动都写在了主方法里,这样程序从主方法一句一句开始执行,当执行到t1.start();时,就会启动进程1,而主线程就被阻塞住了 ,直到t1进程执行完以后,主线程才往下执行,然后执行t2进程,但是票已经被第一个进程卖完了。所以t2进程刚启动进去if (tickets > 0)
到这一句 条件不成立 退出。所以结果就是第一个进程在买票。
应该把启动线程放到外面去。

回答2:

主方法 运行按顺序执行的,虽然是线程那也要等第一个完成才行!你这个写法和在主方法调用两个普通方法效果一样的

回答3:

你开启线程的方法不对 这个只是 按照普通类来执行的 没有 开启相应的控制多线程的 类

回答4:

两个子线程没法区分,所以看不出来