java多个线程_java创建多个线程为什么只有一个线程运行?

本文探讨了一个简单的多线程程序实例,该程序用于模拟售票过程。通过创建多个线程并共享同一个售票任务,演示了线程间的数据共享与同步问题。文章提供了完整的Java代码示例,并展示了程序运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新手问个简单的问题:

为什么以下代码运行结果是这样的呢?

Thread-0出售票20

Thread-0出售票19

Thread-0出售票18

Thread-0出售票17

Thread-0出售票16

Thread-0出售票15

Thread-0出售票14

Thread-0出售票13

Thread-0出售票12

Thread-0出售票11

Thread-0出售票10

Thread-0出售票9

Thread-0出售票8

Thread-0出售票7

Thread-0出售票6

Thread-0出售票5

Thread-0出售票4

Thread-0出售票3

Thread-0出售票2

Thread-0出售票1

public class ThreadDemo {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

TestThread t = new TestThread();

new Thread(t).start();

new Thread(t).start();

new Thread(t).start();

new Thread(t).start();

}

}

class TestThread implements Runnable {

private int tickets = 20;

public void run() {

while(true) {

if(tickets>0)

System.out.println(Thread.currentThread().getName()+"出售票"+tickets--);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值