這篇文章主要為大家展示了如何實(shí)現(xiàn)Java線程的生命周期命名與代碼獲取,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。
創(chuàng)新互聯(lián)公司于2013年開始,先為元寶等服務(wù)建站,元寶等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為元寶企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
一、線程的生命周期
1.五種狀態(tài):新建狀態(tài)、就緒狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)、消亡狀態(tài)
2.就緒狀態(tài)的線程表示有權(quán)利去獲取CPU的時(shí)間片,CPU時(shí)間片是執(zhí)行權(quán),當(dāng)線程拿到CPU時(shí)間片之后就馬上執(zhí)行run方法,這個(gè)時(shí)候就代表進(jìn)入了運(yùn)行狀態(tài)
二、線程的調(diào)度與控制
通常我們的計(jì)算機(jī)只有一個(gè)CPU,CPU在某一個(gè)時(shí)刻只能執(zhí)行一條指令,線程只有得到CPU時(shí)間片,也就是使用權(quán),才可以執(zhí)行指令。在單CPU的機(jī)器上線程不是并行運(yùn)行的,只有個(gè)在多個(gè)CPU上線程才可以并行運(yùn)行。Java虛擬機(jī)要負(fù)責(zé)線程的調(diào)度,取得CPU的使用權(quán),目前有兩種調(diào)度模型:分時(shí)調(diào)度模型和搶占式調(diào)度模型,Java使用搶占式調(diào)度模型。
分時(shí)調(diào)度模型:所有線程輪流使用CPU的使用權(quán),平均分配每個(gè)線程占用CPU的時(shí)間片;
搶占式調(diào)度模型:優(yōu)先讓優(yōu)先級(jí)高的線程使用CPU,如果線程的優(yōu)先級(jí)相同,那么會(huì)隨機(jī)選擇一個(gè),優(yōu)先級(jí)高的線程獲取CPU時(shí)間片相對(duì)多一些。
線程優(yōu)先級(jí)主要分為三種:MAX_PRIORITY(最高級(jí));MIN_PRIORITY(最低級(jí));NORM_PRIORITY(標(biāo)準(zhǔn))默認(rèn)
package com.bjpowernode.java_learning; import com.sun.imageio.plugins.tiff.TIFFT4Compressor; public class D104_1_MultiThreadDispatchAndControl { public static void main(String[] args) { //如何獲取當(dāng)前線程對(duì)象 Thread t = Thread.currentThread(); //t保存的內(nèi)存地址指向的是線程是“主線程對(duì)象” //獲取線程的名字 System.out.println(t.getName()); Thread t2 = new Thread(new Processor104_1()); t2.start(); Thread t3 = new Thread(new Processor104_1()); t3.start(); //可以給線程起名字 Thread t4 = new Thread(new Processor104_1()); t4.setName("t4"); t4.start(); } } class Processor104_1 implements Runnable{ public void run() { Thread t = Thread.currentThread(); System.out.println(t.getName()); } }
以上就是關(guān)于如何實(shí)現(xiàn)Java線程的生命周期命名與代碼獲取的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。