本篇文章為大家展示了深入淺析Java中線程的優(yōu)先級,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)成立于2013年,我們提供高端網(wǎng)站建設(shè)、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、成都營銷網(wǎng)站建設(shè)、小程序開發(fā)、微信公眾號開發(fā)、成都網(wǎng)站推廣服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為三輪攪拌車企業(yè)提供源源不斷的流量和訂單咨詢。
Java 線程優(yōu)先級詳解及實(shí)例
操作系統(tǒng)基本采用時(shí)分的調(diào)度運(yùn)行線程,操作系統(tǒng)會分出一個(gè)個(gè)時(shí)間片,線程會被分配到若干個(gè)時(shí)間片,當(dāng)線程的時(shí)間片用完了就會發(fā)生線程調(diào)度,并且等待著下次調(diào)度,線程被分配到的時(shí)間片多少也就決定了線程使用處理器資源的多少,而線程優(yōu)先級就是決定線程能夠分配多少處理器資源的線程屬性。
在Java多線程中,通過一個(gè)整形變量priority來控制優(yōu)先級,優(yōu)先級的范圍從1-10.默認(rèn)是5,優(yōu)先級越高越好。
public class Priority { public static void main(String[] args) { Thread t1 = new Mythread(); t1.setName("線程1"); t1.setPriority(1); //設(shè)置優(yōu)先級 Thread t2 = new Mythread(); t2.setName("線程2"); t2.setPriority(10); //設(shè)置優(yōu)先級 t1.start(); t2.start(); } } class Mythread extends Thread{ @Override public void run() { for(int i=0;i<10;i++){ System.out.println(getName()+"執(zhí)行"+i+"次"); } } }
執(zhí)行結(jié)果:
線程2執(zhí)行0次 線程2執(zhí)行1次 線程2執(zhí)行2次 線程2執(zhí)行3次 線程2執(zhí)行4次 線程2執(zhí)行5次 線程2執(zhí)行6次 線程2執(zhí)行7次 線程2執(zhí)行8次 線程2執(zhí)行9次 線程1執(zhí)行0次 線程1執(zhí)行1次 線程1執(zhí)行2次 線程1執(zhí)行3次 線程1執(zhí)行4次 線程1執(zhí)行5次 線程1執(zhí)行6次 線程1執(zhí)行7次 線程1執(zhí)行8次 線程1執(zhí)行9次
我們可以看到系統(tǒng)會優(yōu)先執(zhí)行線程1。但是也并不是每次都會優(yōu)先執(zhí)行線程1的,特別是兩個(gè)線程優(yōu)先級區(qū)別不是很大的時(shí)候,線程優(yōu)先級基本上作用不大。線程優(yōu)先級不能作為程序正確性的依賴,因?yàn)椴僮飨到y(tǒng)可以完全不用理會java線程對于優(yōu)先級的決定。
上述內(nèi)容就是深入淺析Java中線程的優(yōu)先級,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。