-
就绪:创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务, 具备了运行的条件,但并不一定已经开始运行了) =============================================== 运行:处于就绪状态的线程,一旦获取了CPU资源,便进入 到运行状态,开始执行run()方法里面的逻辑 ======================================== 终止:线程的run()方法执行完毕,或者线程调用了stop()方法,线程便进入终止状态查看全部
-
线程的生命周期状态转换图查看全部
-
class MyThread2 implements Runnable{ private int ticketsCount = 5; //一共有5张火车票 public void run() { while(ticketsCount > 0){ ticketsCount--; //当前 线程 System.out.println(Thread.currentThread().getName() + "卖了1张票,剩余票数为:"+ticketsCount); } } } public class TicketsRunnable { public static void main(String[] args) { MyThread2 mt = new MyThread2(); //创建三个线程来模拟三个售票窗口 Thread th1 = new Thread(mt, "窗口1"); Thread th2 = new Thread(mt, "窗口2"); Thread th3 = new Thread(mt, "窗口3"); th1.start(); th2.start(); th3.start(); } }查看全部
-
Runnable方式可以避免Thread方式由于java单继承特性带来的缺陷 Runnable的代码可以被多个线程(Thread实例)共享,适合于多个线程处理同一资源的情况查看全部
-
new查看全部
-
继承Thread类 class MyThread extends Thread{ public void run(){ } } MyThread mt = new MyThread(); //创建线程 mt.start(); 实现Runnable接口 class MyThread implements Runnable{ public void run(){ } } MyThread mt = new MyThread(); Thread td = new Thread(mt); //创建线程 td.start(); //启动线程查看全部
-
setDaemon必须在start方法以前调用查看全部
-
守护线程:运行在后台,一旦所有用户线程结束,没有需要守护的线程了,会随JVM一起结束工作查看全部
-
获得CPU后,才进入运行状态查看全部
-
Runnable优点查看全部
-
统一资源指的是用一个Runnable查看全部
-
jstack -l pid查看全部
-
守护线程注意事项查看全部
-
用户线程: 守护线程:运行在后台,一旦所有用户线程结束,没有需要守护的线程了,会随JVM一起结束工作 应用:数据库连接池中监测线程 常见:垃圾回收线程 设置守护线程Thread.setDaemon(true)查看全部
-
线程的生命周期:创建(new)、就绪(start)、运行(CPU时间片)、阻塞(让出CPU,例如:sleep)、终止。查看全部
举报
0/150
提交
取消