国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

蔚來手撕代碼題:三個(gè)線程循環(huán)打印ABC

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

問題如下:

圖片

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ù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)聘者對于多線程模塊掌握的情況,通過應(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講》等。


責(zé)任編輯:武曉燕 來源: Java面試真題解析
相關(guān)推薦

2022-11-18 09:03:12

線程順序打印

2021-06-09 07:01:30

前端CallApply

2015-12-11 15:52:47

盛大云

2021-07-15 14:29:06

LRU算法

2021-09-06 08:13:35

APM系統(tǒng)監(jiān)控

2022-07-15 08:52:10

代碼Java設(shè)計(jì)模式

2024-08-28 11:10:53

2024-03-07 12:51:44

代碼CRUD數(shù)據(jù)

2018-03-02 06:38:25

物聯(lián)網(wǎng)數(shù)字轉(zhuǎn)型區(qū)塊鏈

2020-06-11 09:00:27

SDN網(wǎng)絡(luò)架構(gòu)網(wǎng)絡(luò)

2025-08-18 01:11:00

String類快手C++

2021-11-04 11:14:30

智能自動(dòng)駕駛汽車

2025-08-12 02:55:00

2021-05-18 07:52:31

PromiseAsyncAwait

2023-05-11 07:43:36

機(jī)器學(xué)習(xí)深度學(xué)習(xí)算法

2010-07-30 12:44:58

無線路由故障

2025-08-11 02:25:00

2023-04-26 11:14:11

IT領(lǐng)導(dǎo)者遠(yuǎn)程工作

2024-08-06 10:16:52

Java AgentJava

2020-09-27 08:04:57

前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲图片一区二区| 亚洲天堂av一区| 久久久久久久激情视频| 色哟哟在线观看| 国产精品一色哟哟哟| 国产日韩在线一区| 精品肉辣文txt下载| 欧美性色黄大片手机版| www午夜视频| 国产精品小仙女| 国产亚洲福利社区| 成人乱码手机视频| 精品国产伦一区二区三区免费| 国产中文字幕第一页| 狠狠色丁香久久婷婷综合丁香| 91在线观看免费高清| 香蕉国产成人午夜av影院| 中文国产成人精品| 成年人在线网站| 日韩一级黄色片| 国产最新视频在线| 欧美日韩裸体免费视频| 成人亚洲成人影院| 久久先锋资源网| www.在线观看av| 日本aⅴ免费视频一区二区三区| 榴莲视频成人app| 欧美成人精品1314www| 肉丝一区二区| 一区二区三区精品| 国产超碰在线播放| www.欧美亚洲| 国产天堂视频在线观看| 精品在线免费视频| 国产高潮呻吟久久久| 美女www一区二区| 日本亚洲欧洲精品| 久久国产精品毛片| 麻豆成人小视频| 99精品视频免费全部在线| 91沈先生在线观看| 亚洲精品成人无限看| 91手机视频在线观看| 91精品二区| 国产精品xxxx| 激情欧美国产欧美| 精品伦理一区二区三区| 伊人影院久久| 久久riav二区三区| 男女av一区三区二区色多| 黄色91av| 美女视频网站黄色亚洲| 中国老女人av| 99riav一区二区三区| 日韩福利视频在线| 一区二区三区精品在线| 日本v片在线免费观看| 欧美日韩激情一区| 九色porny丨入口在线| 最近2019年好看中文字幕视频| 国产亚洲字幕| 国产成人欧美在线观看| 久久久久久影院| 麻豆传媒一区二区| 国产成人综合在线播放| 蜜臀视频一区二区三区| 亚洲韩国一区二区三区| 无遮挡动作视频在线观看免费入口| 日韩一区二区三区电影| 色尼玛亚洲综合影院| 欧美交受高潮1| 欧美高清在线| 久久国产精品久久精品国产| 美女视频免费一区| 国产1区2区在线| 亚洲一区二区三区美女| av免费网站在线| 久久精品久久久久久| 猛男gaygay欧美视频| 国产在线欧美日韩| 成人午夜免费电影| 中文字幕免费在线| 日韩精品视频免费| 女人丝袜激情亚洲| 先锋在线资源一区二区三区| 国产亚洲成年网址在线观看| 全色精品综合影院| 亚洲人成伊人成综合网久久久| 六月丁香久久丫| 精品国产一区二区三区麻豆小说| 国产剧情一区二区三区| 制服影音先锋| 欧美一区二区三区免费视频 | 日韩黄色三级在线观看| 热99在线视频| 日日夜夜免费精品| 男女视频在线看| 欧美日本在线一区| 成人h动漫免费观看网站 | 美女精品视频在线| 96国产粉嫩美女| 成人免费网址| 亚洲精品成人三区| 欧美精品福利在线| 国产精品一二三四五| 国产成人精品午夜| 亚洲精品欧洲| 国产成人无码一二三区视频| 色哟哟在线观看一区二区三区| 快播电影网址老女人久久| 91亚洲一区精品| 久久精品欧美日韩精品 | 久久成人免费视频| 国语自产精品视频在线看8查询8| 97在线国产视频| 777欧美精品| 精品国产一区二区三区| a级黄色一级片| 日韩一级片在线播放| 欧美理论在线播放| 欧美 日韩精品| 亚洲欧美综合v| 一区二区三区四区五区精品视频 | 久久精品国产999大香线蕉| 在线看国产视频| 久久久久久久久久久91| 国产91丝袜在线18| 国产区美女在线| 91精品免费| 亚洲精品久久久蜜桃| 欧美影院视频| 成年在线观看视频| 精品国产乱码久久久久久浪潮| 欧美日韩中文| 在线一级观看| 日本人成精品视频在线| 国产视频一区二区在线| 久久国内精品| 国产精品国产对白熟妇| 亚洲精品在线不卡| 琪琪一区二区三区| 在线免费看a| 亚洲在线www| 亚洲精品一卡二卡| 亚洲人成伊人成综合图片| 青青在线视频观看| 欧美成人精品三级在线观看 | 午夜在线精品偷拍| 高清福利在线观看| 91久久精品久久国产性色也91| 亚洲在线观看免费视频| 欧美日韩国产传媒| 国产对白在线正在播放| 国产欧美日韩丝袜精品一区| 亚洲国产三级在线| 小说区亚洲自拍另类图片专区| 在线视频国产三级| 999久久久| 精品视频免费在线| 六月婷婷一区| 亚洲伊人av| 日韩av播放器| 国产成+人+综合+亚洲欧洲 | 国产精品大片wwwwww| 亚洲精选视频在线| 欧美激情777| 欧美午夜电影一区二区三区| 日韩一区二区三区高清| 亚洲人成在线观| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 成人激情午夜影院| 在线免费成人| 四虎免费av| 国产精品美乳在线观看| 色又黄又爽网站www久久| 久久xxxx| 91看片一区| 先锋影音资源综合在线播放av| 久久久久中文字幕2018| 亚洲午夜在线视频| 中文一区在线| 中文字幕21页在线看| 主播大秀视频在线观看一区二区| www.youjizz.com在线| 日韩在线影院| 午夜精品成人av| 成人亚洲视频| 日本成人一区二区| 国产精品美女午夜爽爽| 校园春色亚洲| 99九九久久| 丝袜美腿一区二区三区动态图| 99视频在线观看地址| 国产精品精华液网站| 四虎影视在线观看2413| 波多野结衣亚洲| 午夜在线激情影院| 精品亚洲a∨| 国产精品激情电影| 亚洲国产精品黑人久久久|