第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

話說(shuō) 線程的概念&生命周期

標(biāo)簽:
Java

一、线程的概念&生命周期

1. 什么是进程

百度百科:

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

比如打开抖音 抖音就是一个进程

2. 什么是线程

百度百科:

是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程实际运作单位。一个进程由多个线程组成。

进程 腾讯视屏.exe 点击 启动

比如抖音给美女点赞,进程需要开一个线程去给点赞数+1

知识点:线程切换需要消耗系统资源 有兴趣可以了解一下协程/纤程 更小更快

3. 线程的生命周期

1. new: 刚创建线程 还没开始执行

2. Runnable: 调用start()方法之后 就会交给线程调度器执行了,归操作系统管了 这时候是Runnable

​ Runnable 可以分为两个状态:

2.1 Ready: 就绪状态 这个时候线程进了CPU的等待队列 等着CPU执行了

​ 或者cpu执行了一半,又去执行别的线程了,当前线程被挂起

​ 或者执行Thread.yield() 方法 主动让出cpu

2.2 Running: 运行状态 获取到了CPU的执行权限 开始执行

3. Blocked: 线程进入synchronized同步代码块中 然后没有获取到所资源的时候 就阻塞

4. Waiting: 调用wait join LockSuport.park() 等方法后 进入Waiting状态
​ 需要notify、notifyAll、LockSuport.unpark() 才能逃离waiting状态

5. TimeWaiting: 与Waiting类似 只是加了时间 超过一定时间 自动逃离Waiting状态

6. Terminated: 线程结束 线程内容执行完了结束 Terminated状态之后不能再进入其他状态了
图片描述

这个状态看一次会了,过段时间就忘了 所以呢想个办法 让它留在脑海

假如你(CPU)找了个对象(Thread)

你对象可能的状态有:

刚找到对象:New

对象洗白白钻被窝:Ready

你有空了被窝找对象:Running

对象要睡觉:TimeWaiting

你要洗澡,对象要去厕所 需要在门口waitting

你生气了把对象锁门外:对象处于Blocked状态 他没有要是进不来

图片描述

4. 瞅一眼代码
//线程状态枚举 
public enum State {
        NEW,
        RUNNABLE, // 可能是Ready 可能是 Running 看cpu调度了
        BLOCKED,
        WAITING,
        TIMED_WAITING,
        TERMINATED;
}

NEW:

 Thread t1 = new Thread(()->{
            System.out.println("线程1");
 });

System.out.println("t1状态:"+t1.getState().name()); // NEW 

RUNNABLE:

final Thread t1 = new Thread(()->{
    try {
        while (true){
            Thread.yield();
        }
    } catch (Exception e){}
});

t1.start();

new Thread(()->{
    System.out.println("t1状态:"+t1.getState().name());
}).start();

Waiting:

public static Object o = new Object();
public static void main(String[] args) throws InterruptedException {
    final Thread t1 = new Thread(()->{
        try {
            synchronized (o){
                o.wait();
            }
        } catch (Exception e){}
    });

    t1.start();

    Thread.sleep(1000);

    new Thread(()->{
        System.out.println("t1状态:"+t1.getState().name());
    }).start(); // WAITING

}

TIMED_WAITING:

public static Object o = new Object();
public static void main(String[] args) throws InterruptedException {
    final Thread t1 = new Thread(()->{
        try {
            synchronized (o){
                o.wait(10000);
            }
        } catch (Exception e){}
    });

    t1.start();

    Thread.sleep(1000);

    new Thread(()->{
        System.out.println("t1状态:"+t1.getState().name());
    }).start();
}

Blocked:

public static Object o = new Object();
public static void main(String[] args) throws InterruptedException {
    final Thread t1 = new Thread(()->{
        try {
            Thread.sleep(1000);
            synchronized (o){

            }
        } catch (Exception e){}
    });

    t1.start();



    new Thread(()->{
        synchronized (o){
            try {
                Thread.sleep(2000);
                System.out.println("t1状态:"+t1.getState().name());//Blocked
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    }).start();
}
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消