最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java線程中yield()方法、join()方法

2022-08-31 13:57 作者:虛云幻仙  | 我要投稿

/**
* 線程中yield()方法、join()方法
* yield讓位,yield()方法會使當(dāng)前線程將cpu資源讓位給同優(yōu)先級的線程,yield()方法不能保證線程立刻從運行狀態(tài)變?yōu)榫途w狀態(tài)/可運行狀態(tài),yield不會使線程變?yōu)樽枞麪顟B(tài)
*/

public class Test4Thread implements Runnable{
? ?@Override
? ?public void run() {
? ? ? ?for (int i=0;i<8;i++){
? ? ? ? ? ?Thread.yield();
? ? ? ? ? ?System.out.println(Thread.currentThread().getName()+"執(zhí)行次數(shù):"+i);
? ? ? ?}
? ?}

? ?public static void main(String[] args) {
? ? ? ?new Thread(new Test4Thread()).start();
? ? ? ?new Thread(new Test4Thread()).start();
? ? ? ?/*結(jié)果為:
? ? ? ?Thread-0執(zhí)行次數(shù):0
? ? ? ?Thread-1執(zhí)行次數(shù):0
? ? ? ?Thread-0執(zhí)行次數(shù):1
? ? ? ?Thread-1執(zhí)行次數(shù):1
? ? ? ?Thread-0執(zhí)行次數(shù):2
? ? ? ?Thread-1執(zhí)行次數(shù):2
? ? ? ?Thread-0執(zhí)行次數(shù):3
? ? ? ?Thread-1執(zhí)行次數(shù):3
? ? ? ?Thread-1執(zhí)行次數(shù):4
? ? ? ?Thread-0執(zhí)行次數(shù):4
? ? ? ?Thread-1執(zhí)行次數(shù):5
? ? ? ?Thread-0執(zhí)行次數(shù):5
? ? ? ?Thread-1執(zhí)行次數(shù):6
? ? ? ?Thread-0執(zhí)行次數(shù):6
? ? ? ?Thread-1執(zhí)行次數(shù):7
? ? ? ?Thread-0執(zhí)行次數(shù):7

? ? ? ?子線程每一次執(zhí)行到y(tǒng)ield()會嘗試讓位給另一個子線程,并且在下一次進(jìn)入運行狀態(tài)時會執(zhí)行yield()下面的語句,每輪循環(huán)都會執(zhí)行一次yield()讓位
? ? ? ?預(yù)期是每個子線程打印一次循環(huán)后讓位給另一個子線程,兩個子線程交替打印
? ? ? ?但存在讓位不成功的情況,比如Thread-1連著執(zhí)行了3和4
? ? ? ? */

? ?}
}

class Test5Thread implements Runnable{
? ?//測試join()線程聯(lián)合,聯(lián)合的線程會從并行變?yōu)榇?/span>
? ?public static void main(String[] args) {
? ? ? ?Thread t = new Thread(new Test4Thread());
? ? ? ?t.start();
? ? ? ?try {
? ? ? ? ? ?t.join();
? ? ? ? ? ?//在主線程中調(diào)用了t.join()方法, 主線程 會進(jìn)入阻塞狀態(tài),等待子線程t執(zhí)行完畢后再往后執(zhí)行,相當(dāng)于將t的過程join進(jìn)了main的時間軸中
? ? ? ?} catch (InterruptedException e) {
? ? ? ? ? ?throw new RuntimeException(e);
? ? ? ?}
? ? ? ?System.out.println("主線程結(jié)束");
? ? ? ?/*
? ? ? ?Thread-0執(zhí)行次數(shù):0
? ? ? ?Thread-0執(zhí)行次數(shù):1
? ? ? ?Thread-0執(zhí)行次數(shù):2
? ? ? ?Thread-0執(zhí)行次數(shù):3
? ? ? ?Thread-0執(zhí)行次數(shù):4
? ? ? ?Thread-0執(zhí)行次數(shù):5
? ? ? ?Thread-0執(zhí)行次數(shù):6
? ? ? ?Thread-0執(zhí)行次數(shù):7
? ? ? ?主線程結(jié)束

? ? ? ?主線程與子線程聯(lián)合后,子線程的yield()不起作用,如果有其他線程并行執(zhí)行的話其他線程不受影響
? ? ? ? */


? ?}


? ?@Override
? ?public void run() {
? ? ? ?//在子線程中聯(lián)合線程
? ? ? ?Thread t = new Thread(new Test4Thread());
? ? ? ?//在子線程中創(chuàng)建線程
? ? ? ?try {
? ? ? ? ? ?t.join();
? ? ? ? ? ?//創(chuàng)建線程的一方聯(lián)合被創(chuàng)建的線程
? ? ? ?} catch (InterruptedException e) {
? ? ? ? ? ?throw new RuntimeException(e);
? ? ? ?}
? ? ? ?System.out.println("等待被創(chuàng)建的線程結(jié)束,創(chuàng)建方再向下執(zhí)行");
? ?}
}

java線程中yield()方法、join()方法的評論 (共 條)

分享到微博請遵守國家法律
怀柔区| 灵璧县| 吴堡县| 永修县| 荔浦县| 浪卡子县| 宿松县| 眉山市| 和平区| 洛阳市| 禹城市| 德格县| 米脂县| 赣州市| 准格尔旗| 平阴县| 辽宁省| 哈密市| 陈巴尔虎旗| 阿坝县| 西吉县| 莎车县| 丰城市| 平潭县| 吐鲁番市| 焉耆| 调兵山市| 云南省| 盐津县| 昌黎县| 衡阳市| 廊坊市| 枝江市| 永年县| 板桥市| 宝应县| 白玉县| 濮阳市| 吐鲁番市| 深水埗区| 江山市|