为啥我的java程序明明开启了4条线程,却只有一条线程在运行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我的java程序明明开启了4条线程,却只有一条线程在运行?相关的知识,希望对你有一定的参考价值。
package com.heima.syn;
public class Demo4_Ticket
/**
* @param args
* 火车站卖票的例子用实现Runnable接口 //此办法做不出来
*/
public static void main(String[] args)
MyTicket mt = new MyTicket();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
/*Thread t1 = new Thread(mt); //多次启动一个线程是非法的
t1.start();
t1.start();
t1.start();
t1.start();*/
class MyTicket implements Runnable
private int tickets = 100000;
@Override
public void run()
while(true)
synchronized(this)
if(tickets <= 0)
break;
try
Thread.sleep(10); //线程1睡,线程2睡,线程3睡,线程4睡
catch (InterruptedException e)
e.printStackTrace();
System.out.println(Thread.currentThread().getName() + "...这是第" + tickets-- + "号票");
结果
Thread-0...这是第100000号票
Thread-0...这是第99999号票
Thread-0...这是第99998号票
Thread-0...这是第99997号票
。。。。。。
Thread t2 = new Thread(r1, "2号窗口");// 创建线程
Thread t3 = new Thread(r1, "3号窗口");// 创建线程
Thread t4 = new Thread(r1, "4号窗口");// 创建线程
t1.start();
t2.start();
这样创建多线程 参考技术C 你要等待久一点,才可以看到其他的线程,因为线程是不稳定的。。。
以上是关于为啥我的java程序明明开启了4条线程,却只有一条线程在运行?的主要内容,如果未能解决你的问题,请参考以下文章