zoukankan      html  css  js  c++  java
  • 线程的状态

    六种:

    1、新建(New):创建后尚未启动的线程的状态

    2、运行(Runnable):包含Running 和Ready

    3、无限期等待(Waiting):不会被分配CPU执行时间,需要显式被唤醒

    没有设置Timeout参数的Object.wait()方法

    没有设置Timeout参数的Thread.join()方法

    LockSupport.park()方法

    4、限期等待(Timed Waiting):在一定的时间后由系统自动唤醒

    Thread.sleep()方法

    设置Timeout参数的Object.wait()方法

    设置Timeout参数的Thread.join()方法

    LockSupport.parkNanos()方法

    LockSupport.parkUntil()方法

    5、阻塞(Blocked):等待获取排它锁

      问:等待状态和阻塞状态的区别是什么?----》什么时候会产生这个状态?

      -----》阻塞状态在等待着获取排它锁这个事件,在另外一个线程放弃这把锁发生

        而等待状态则在等待一段时间或者有唤醒动作时发生

        程序进入同步区的时候,将进入Blocked状态,比如说当一个线程进入 被synchronized修饰的方法时,这个线程已经获取锁了,而其他线程同时向进入该方法的时候,这些线程则进入Blocked状态

    6、结束(Terminated):已终止线程的状态,线程已经结束执行

    ---》当子线程的run()方法执行完成之后或者main线程执行完成之后,就是进入结束状态

    public class ThreadTest {
        private static void attack() {
            System.out.println("Fight");
            System.out.println("Current Thread is : " + Thread.currentThread().getName());
        }
    
        public static void main(String[] args) throws InterruptedException {
            Thread t = new Thread(){
                public void run(){
                    attack();
                }
            };
            System.out.println("current main thread is : " + Thread.currentThread().getName());
            t.start();
            t.join();
            t.start(); // 这个时候子线程已经是结束状态
        }
    }

    current main thread is : main
    Fight
    Current Thread is : Thread-0
    1
    Exception in thread "main" java.lang.IllegalThreadStateException
    at java.lang.Thread.start(Thread.java:708)
    at com.interview.javabasic.thread.ThreadTest.main(ThreadTest.java:19)

    Process finished with exit code 1

      

  • 相关阅读:
    Jupyter Notebook的安装
    Centos6安装crontab
    通用测试用例整理
    appium定位toast消息的使用
    python_appium_模拟器启动app进行登录
    GnuPG的使用入门
    Processing 绘制边框/轮廓(即镂空形状)的方法
    如何制作有遮罩(蒙版)的GIF动图(且支持有透明区域)
    Processing 窗口全屏、多屏、跨屏
    MacPorts Error:Current platform "darwin 16" does not match expected platform "darwin 15"
  • 原文地址:https://www.cnblogs.com/vingLiu/p/10663835.html
Copyright © 2011-2022 走看看