概念:
线程具有生命周期,其中包括五个状态,分别为出生状态,就绪状态,运行状态,暂停状态(休眠/等待/阻塞)和死亡状态
五种状态
-
出生状态
被创建时的状态称为出生状态
-
就绪状态
当线程对象调用starts()方法后进入就绪状态
-
运行状态
当线程得到系统资源后进入运行状态。
线程一旦进入运行状态,就会在就绪与运行状态下转换,同时也也可能进入暂停或死亡状态。
-
暂停状态
当在运行状态下调用sleep()方法,wait()方法或者发生阻塞时,就会进入暂停状态。
当在休眠结束,或者调用notify()或notifyAll( )方法,或者阻塞解除时,线程会重新进入就绪状态
-
死亡状态
当线程的run()方法执行完毕,或者线程发生错误,异常时,线程进入死亡状态
两种方法
继承Thread类
public class ThreadTest {
public static void main(String[] args) {
new Thread( new MyThread(),\"A\").start();
}
}
class MyThread extends Thread{
private int num=10;
实现Runnable接口
public class RunnableTest {
public static void main(String[] args) {
new Thread(new MyRunnable(),\"A\").start();
}
}
class MyRunnable implements Runnable{
private int number=10;
线程的休眠 Sleep( )
sleep()方法可以指定线程的休眠时间,线程的休眠时间以毫秒为单位
Thread.sleep(100);
public class SleepTest {
public static void main(String[] args) {
MyThread01 myThread01 = new MyThread01();
new Thread( myThread01,\"A\").start();
}
}
class MyThread01 implements Runnable{
private int number=10;
线程的等待死亡(强行插队)方法join( )
join( )方法,等待线程死亡
public class JoinTest {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(new MyRunnable01());
thread.start();
for (int i = 0; i <50;i++){
if(i==20){
thread.join();
}
System.out.println(\"正在执行主线程任务\");
}
}
}
class MyRunnable01 implements Runnable{
线程的礼让Yield()
yield()方法,线程的礼让:1.让当前执行的线程暂停,但不阻塞 2.让cpu重新调度,但不一定礼让成功
public class TestYield implements Runnable {
来源:https://www.cnblogs.com/wfy-studying/p/16155061.html
本站部分图文来源于网络,如有侵权请联系删除。