久久久噜噜噜久久熟女,久久久久久久久,国内精品,精品国产成人亚洲午夜福利,久久天堂av综合合色蜜桃网,好姑娘在线观看完整视频高清

首頁 > 互聯(lián)網(wǎng)

全球熱點(diǎn)評(píng)!蔚來手撕代碼題:三個(gè)線程循環(huán)打印ABC

來源:Java面試真題解析 時(shí)間:2023-06-25 12:01:28

問題如下:


(資料圖片僅供參考)

https://www.nowcoder.com/discuss/493178141461041152

思路分析

三個(gè)線程交替打印 ABC 的實(shí)現(xiàn)方法有很多,我個(gè)人比較傾向于使用 JUC 下的 CyclicBarrier(循環(huán)柵欄,也叫循環(huán)屏障)來實(shí)現(xiàn),因?yàn)檠h(huán)柵欄天生就是用來實(shí)現(xiàn)一輪一輪多線程任務(wù)的,它的核心實(shí)現(xiàn)思路如下圖所示:

CyclicBarrier 作用是讓一組線程相互等待,當(dāng)達(dá)到一個(gè)共同點(diǎn)時(shí),所有之前等待的線程再繼續(xù)執(zhí)行,且 CyclicBarrier 功能可重復(fù)使用。

上圖描述的就是 CyclicBarrier 每輪等待 5 個(gè)線程全部達(dá)到一個(gè)共同點(diǎn)時(shí),再執(zhí)行下一階段的任務(wù)。

舉個(gè)例子

比如磊哥要坐班車回老家,因?yàn)橹型静辉试S上、下乘客,那么營(yíng)運(yùn)的公司為了收益最大化,就會(huì)等人滿之后再發(fā)車,這個(gè)發(fā)車的觸發(fā)條件就是 CyclicBarrier 中多個(gè)線程執(zhí)行的共同點(diǎn)。等汽車達(dá)到另一個(gè)站點(diǎn)之后也是同樣的操作,等待乘客再次坐滿之后,再繼續(xù)發(fā)車,CyclicBarrier 就是這樣執(zhí)行的,它也是可以循環(huán)使用的。

實(shí)現(xiàn)代碼
import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/** * 3 個(gè)線程交替打印 ABC */public class ThreadLoopPrint {    // 共享計(jì)數(shù)器    private static int sharedCounter = 0;    public static void main(String[] args) {        // 打印的內(nèi)容        String printString = "ABC";        // 定義循環(huán)柵欄        CyclicBarrier cyclicBarrier = new CyclicBarrier(3, () -> {        });        // 執(zhí)行任務(wù)        Runnable runnable = new Runnable() {            @Override            public void run() {                for (int i = 0; i < printString.length(); i++) {                    synchronized (this) {                        sharedCounter = sharedCounter > 2 ? 0 : sharedCounter; // 循環(huán)打印                        System.out.println(printString.toCharArray()[sharedCounter++]);                    }                    try {                        // 等待 3 個(gè)線程都打印一遍之后,繼續(xù)走下一輪的打印                        cyclicBarrier.await();                    } catch (InterruptedException e) {                        e.printStackTrace();                    } catch (BrokenBarrierException e) {                        e.printStackTrace();                    }                }            }        };        // 開啟多個(gè)線程        new Thread(runnable).start();        new Thread(runnable).start();        new Thread(runnable).start();    }}

以上程序執(zhí)行的結(jié)果如下圖所示:

小結(jié)

多線程循環(huán)打印主要是考察應(yīng)聘者對(duì)于多線程模塊掌握的情況,通過應(yīng)聘者編寫的代碼和編寫代碼所用的時(shí)間,可以非常直觀的了解應(yīng)聘者的代碼基本功。

作者介紹

王磊(人稱磊哥),13 年一線編程工作經(jīng)驗(yàn),3 年授課經(jīng)驗(yàn),曾就職于 360,資深技術(shù)博主。曾擔(dān)任某思教育和某谷電商的研發(fā)經(jīng)理和技術(shù)負(fù)責(zé)人。

Java 技術(shù)傳播者,博客總閱讀量近 300 萬次,博客成就:騰訊云年年度最佳作者/掘金社區(qū)優(yōu)秀作者/拉勾專欄作者/GitChat(CSDN 旗下)暢銷作家/慕課講師/阿里云社區(qū)技術(shù)專家等,發(fā)布了 6 個(gè)技術(shù)專欄,分別是拉勾平臺(tái)的《Java大廠真題與源碼34講》,GitChat 平臺(tái)的《Java 面試全解析:核心知識(shí)點(diǎn)與典型面試題》《程序員的 MySQL 面試金典》《Redis 核心原理與實(shí)戰(zhàn)》《程序員的 Redis 面試金典》,慕課網(wǎng)的《設(shè)計(jì)模式深度解析34講》等。

相關(guān)稿件

全球熱點(diǎn)評(píng)!蔚來手撕代碼題:三個(gè)線程循環(huán)打印ABC

大逆轉(zhuǎn)!街拍不是隨意的,而是小姐姐設(shè)下的游戲,董,胡總被騙了

中國(guó)農(nóng)業(yè)發(fā)展銀行總行專家委員會(huì)副主任委員趙富洲接受審查調(diào)查

她越裹越緊,在座各位都有責(zé)任 環(huán)球新視野

2023年吉林一級(jí)消防工程師報(bào)名網(wǎng)站入口及報(bào)考流程 環(huán)球熱點(diǎn)評(píng)

多彩民俗點(diǎn)亮即墨古城|全球新動(dòng)態(tài)

聚焦:特斯拉FSD暗藏彩蛋 “埃隆模式”

宜春學(xué)院2023年研究生一志愿復(fù)試時(shí)間安排

至少漲價(jià)1500元?iPhone 15備貨量曝光:蘋果出手近億臺(tái)

廣東高考今日放榜 深圳中考明日開考

普里戈任接受白俄緩和局勢(shì)建議 其刑事立案將獲撤銷 全球聚焦

印尼防疫放出狠招(澎湃新聞:印尼解除所有新冠防疫措施) 焦點(diǎn)觀察

天天百事通!海南高考成績(jī)公布!本科批普通類分?jǐn)?shù)線483分

小米手機(jī)海邊拍照參數(shù)_天天熱議

中國(guó)國(guó)情:男子返崗女兒偷塞100元和卡片|焦點(diǎn)短訊

梁靜茹演唱會(huì)觀眾齊喊開空調(diào)-全球要聞

U19男籃世界杯:中國(guó)隊(duì)首戰(zhàn)20分不敵法國(guó) 楊瀚森14+6+3

游客稱160元買廬山門票看瀑布還要35元,當(dāng)?shù)鼗貞?yīng):非廬山景區(qū),目前已免費(fèi)

精選!2023珠海香洲區(qū)幼兒園電腦派位結(jié)果在哪查?附查詢?nèi)肟?/a>

孔德京奪得中式臺(tái)球國(guó)際精英賽冠軍 世界視點(diǎn)

環(huán)球速看:寶可夢(mèng)卡牌2023北京大師賽熱血來襲 盛夏賽事再掀卡牌對(duì)戰(zhàn)浪潮

環(huán)球熱資訊!蘇州地鐵11號(hào)線沿途景點(diǎn)有哪些

四川匯語電子商務(wù)有限公司:抖音小店怎么做賺錢店鋪?

豐田再次放大招,亮出SUV版卡羅拉,油耗5.4L,比本田CR-V還霸氣

山東2023年高考錄取分?jǐn)?shù)線

【淺嵐X惡靈】【同人】相交線/匯流 天天熱訊

美國(guó)初請(qǐng)失業(yè)金人數(shù)意外小幅上升 連續(xù)三周高于26萬|環(huán)球微速訊

十天可以瘦多少_十天可以瘦多少斤

端午假期旅游人次超疫情前 受高溫影響夜間游人次占比提高

世界新消息丨3人往海里扔100多個(gè)粽子 網(wǎng)友:既不環(huán)保又浪費(fèi)糧食