国产美女主播视频一区_国产精品蜜臀在线观看_亚洲成人动漫一区_亚洲视屏在线播放

首頁 > 互聯網

全球熱點評!蔚來手撕代碼題:三個線程循環打印ABC

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

問題如下:


(資料圖片僅供參考)

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

思路分析

三個線程交替打印 ABC 的實現方法有很多,我個人比較傾向于使用 JUC 下的 CyclicBarrier(循環柵欄,也叫循環屏障)來實現,因為循環柵欄天生就是用來實現一輪一輪多線程任務的,它的核心實現思路如下圖所示:

CyclicBarrier 作用是讓一組線程相互等待,當達到一個共同點時,所有之前等待的線程再繼續執行,且 CyclicBarrier 功能可重復使用。

上圖描述的就是 CyclicBarrier 每輪等待 5 個線程全部達到一個共同點時,再執行下一階段的任務。

舉個例子

比如磊哥要坐班車回老家,因為中途不允許上、下乘客,那么營運的公司為了收益最大化,就會等人滿之后再發車,這個發車的觸發條件就是 CyclicBarrier 中多個線程執行的共同點。等汽車達到另一個站點之后也是同樣的操作,等待乘客再次坐滿之后,再繼續發車,CyclicBarrier 就是這樣執行的,它也是可以循環使用的。

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

以上程序執行的結果如下圖所示:

小結

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

作者介紹

王磊(人稱磊哥),13 年一線編程工作經驗,3 年授課經驗,曾就職于 360,資深技術博主。曾擔任某思教育和某谷電商的研發經理和技術負責人。

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

相關稿件

全球熱點評!蔚來手撕代碼題:三個線程循環打印ABC

大逆轉!街拍不是隨意的,而是小姐姐設下的游戲,董,胡總被騙了

中國農業發展銀行總行專家委員會副主任委員趙富洲接受審查調查

她越裹越緊,在座各位都有責任 環球新視野

2023年吉林一級消防工程師報名網站入口及報考流程 環球熱點評

多彩民俗點亮即墨古城|全球新動態

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

宜春學院2023年研究生一志愿復試時間安排

至少漲價1500元?iPhone 15備貨量曝光:蘋果出手近億臺

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

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

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

天天百事通!海南高考成績公布!本科批普通類分數線483分

小米手機海邊拍照參數_天天熱議

中國國情:男子返崗女兒偷塞100元和卡片|焦點短訊

梁靜茹演唱會觀眾齊喊開空調-全球要聞

U19男籃世界杯:中國隊首戰20分不敵法國 楊瀚森14+6+3

游客稱160元買廬山門票看瀑布還要35元,當地回應:非廬山景區,目前已免費

精選!2023珠海香洲區幼兒園電腦派位結果在哪查?附查詢入口

孔德京奪得中式臺球國際精英賽冠軍 世界視點

環球速看:寶可夢卡牌2023北京大師賽熱血來襲 盛夏賽事再掀卡牌對戰浪潮

環球熱資訊!蘇州地鐵11號線沿途景點有哪些

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

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

山東2023年高考錄取分數線

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

美國初請失業金人數意外小幅上升 連續三周高于26萬|環球微速訊

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

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

世界新消息丨3人往海里扔100多個粽子 網友:既不環保又浪費糧食


主站蜘蛛池模板: 欧美一乱一性一交一视频| 91免费视频网站在线观看| 欧美精品第三页| 国产精品爽爽ⅴa在线观看| 欧美精品久久久| 亚洲精品第一区二区三区| 国产精品免费福利| 热门国产精品亚洲第一区在线V| 日日夜夜精品网站| 日本久久中文字幕| 日本一区二区免费高清视频| 日韩欧美亚洲日产国产| 欧美日韩精品免费观看视一区二区| 欧美日本精品在线| www.精品av.com| 日韩中文字幕视频在线观看| www.久久草| 国产欧美欧洲在线观看| 久久精品久久精品亚洲人| 99视频免费播放| 最新国产精品久久| 91国产在线免费观看| 久久综合色88| 国产精品国产精品国产专区不卡 | 国产区亚洲区欧美区| 国产精品热视频| 久久久免费在线观看| 久久91亚洲精品中文字幕| 麻豆成人av| 亚洲国产精品久久久久婷婷老年| 国产日韩在线看| 日本不卡免费高清视频| 欧美 日韩 国产在线| 久久久久国色av免费观看性色| 天天爱天天做天天操| 欧美日韩喷水| 久久久免费视频网站| 777国产偷窥盗摄精品视频| av在线不卡观看| 久久久久国产精品视频| av久久久久久|