-
创建:新建一个线程对象,如:Thread threa d= new Thread(); 就绪:创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行了) 运行:处于就绪状态的线程,一旦获取了CPU资源,便进入到运行状态,开始执行run()方法里面的逻辑 终止:线程的run()方法执行完毕,或者线程调用了stop()方法,线程便进入了终止状态 阻塞:一个正在执行的线程在某些情况下,由于某些原因而暂时让出了CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法(当sleep()方法的timeout结束,阻塞解除,线程重新回到就绪状态,等待CPU资源)查看全部
-
Runnable适合多线程处理同一资源。查看全部
-
调用start()只是进入了线程的等待队列,并不一定开始运行了查看全部
-
jmap.exe 用来生成堆快照的 jstat.exe 监测虚拟机运行状态的,内存加载情况,锁持有情况 jstack tid,nid:帮我们获得cpu占有率很高的线程 -l:可以获得额外的锁信息 prio:代表优先级 线程状态: New线程创建;Runnable即将或正在运行的线程,Terminated对应线程终止查看全部
-
守护线程 设置守护线程Thread.setDaemon(true) 注意事项: setDaemon(true)必须在start()方法之前调用,否则会抛出IllegalThreadStateException异常 在守护线程中产生的新线程也是守护线程 不是所有的任务都可以分配给守护线程来执行,比如读写操作或者计算逻辑查看全部
-
线程的生命周期 创建:新建一个线程对象,如:Thread threa d= new Thread(); 就绪:创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行了) 运行:处于就绪状态的线程,一旦获取了CPU资源,便进入到运行状态,开始执行run()方法里面的逻辑 终止:线程的run()方法执行完毕,或者线程调用了stop()方法(已淘汰),线程便进入了终止状态 阻塞:一个正在执行的线程在某些情况下,由于某些原因而暂时让出了CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法(当sleep()方法的timeout结束,阻塞解除,线程重新回到就绪状态,等待CPU资源)查看全部
-
两种方式的比较: Runnable可以避免Thread由于Java单继承特性带来的缺陷 Runnable的代码可以被多个线程(Thread实例)共享,适合于多个线程处理同一资源的情况。查看全部
-
守护线程三点查看全部
-
守护线程查看全部
-
创建:新建一个线程对象,如:Thread threa d= new Thread(); 就绪:创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行了) 运行:处于就绪状态的线程,一旦获取了CPU资源,便进入到运行状态,开始执行run()方法里面的逻辑 终止:线程的run()方法执行完毕,或者线程调用了stop()方法,线程便进入了终止状态 阻塞:一个正在执行的线程在某些情况下,由于某些原因而暂时让出了CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法(当sleep()方法的timeout结束,阻塞解除,线程重新回到就绪状态,等待CPU资源)查看全部
-
1.class MyThread extends Thread类,Override run()方法,然后直接new MyThread() , start() 2.class MyThread implements Runnable接口,实现run()方法,然后MyThread作为参数传递到Thread类中 new Thread(new MyThread()),-->start() 同一个Runnable对象作为参数同时传给三个Thread线程,所以ticketCount 在线程间是共享的。; 原来runnable是用来给线程共享的,从而实现多线程并发处理查看全部
-
线程创建的两种方法 1)Class MyThread1 extends Thread{ @Override public void run() {....} } MyThread1 th=new MyThread1();//创建线程 th.start();//启动线程 ---------------------------------- 2)Class MyThread implements Runnable{ @Override public void run(){} } MyThread mt=new MyThread();//多出来 Thread thread=new Thread(mt);//创建线程 thread.start();//启动线程查看全部
-
线程的生命周期 创建:新建一个线程对象,如:Thread threa d= new Thread(); 就绪:创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行了) 运行:处于就绪状态的线程,一旦获取了CPU资源,便进入到运行状态,开始执行run()方法里面的逻辑 终止:线程的run()方法执行完毕,或者线程调用了stop()方法,线程便进入了终止状态 阻塞:一个正在执行的线程在某些情况下,由于某些原因而暂时让出了CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法(当sleep()方法的timeout结束,阻塞解除,线程重新回到就绪状态,等待CPU资源)查看全部
-
线程的生命周期查看全部
-
jstack查看全部
举报
0/150
提交
取消