回答:謝謝邀請(qǐng)!這個(gè)問題用同步門閂應(yīng)該可以解決,我們看一下定義:CountDownLatch是jdk1.5之后引入的一個(gè)同步器應(yīng)用類,它的作用能夠使一個(gè)線程一直等待直到其他線程完成任務(wù)后再繼續(xù)執(zhí)行。CountDownLatch通常也被叫做門閂,意思是它會(huì)導(dǎo)致一條或多條線程一直在門口等待,直到一條線程打開這個(gè)門,其他線程才得以繼續(xù)執(zhí)行這是jdk1.5新增加的功能,另外使用同步屏障應(yīng)該也能解決。我在頭條上寫...
回答:由于我經(jīng)常被邀請(qǐng)做為一些大型互聯(lián)網(wǎng)企業(yè)的面試官,所以我來(lái)回答一下這個(gè)問題。一般面試初級(jí)Java工程師都是應(yīng)屆畢業(yè)生或者是1至2年左右工作經(jīng)驗(yàn)的程序員較多,這兩種情況雖然面試的都是初級(jí)程序員的崗位,但是面試的要求上還是有所區(qū)別的。應(yīng)屆畢業(yè)生針對(duì)于應(yīng)屆畢業(yè)生來(lái)說,面試官最為關(guān)心的內(nèi)容是面試者的知識(shí)結(jié)構(gòu)是否健全。往往面試官在篩選的時(shí)候首要考慮的是學(xué)校,然后是專業(yè),然后是知識(shí)的掌握情況。因?yàn)橛胁簧倏萍脊?..
回答:在Linux中,多線程使用pthread_函數(shù)組進(jìn)行操作。具體來(lái)說,要使用多線程,首先定義一個(gè)線程函數(shù),用于在線程中運(yùn)行。然后在需要新線程的地方調(diào)用pthread_create。線程使用的常用模式一般有兩種:一是執(zhí)行比較耗時(shí)的計(jì)算。這時(shí),在取得了數(shù)據(jù)等所需資源后,創(chuàng)建一個(gè)新線程,進(jìn)行計(jì)算,計(jì)算完成后,線程自然退出。二是雖然單個(gè)計(jì)算不耗時(shí),但需要頻繁計(jì)算。這時(shí),數(shù)據(jù)可能還沒有準(zhǔn)備好,但可以先創(chuàng)建一個(gè)...
回答:首先我們假定查詢sql需要的網(wǎng)絡(luò)開銷和執(zhí)行時(shí)間是一樣的多線程就是每個(gè)線程搶cpu的時(shí)間片,上下切換程序運(yùn)行,看起來(lái)像是一起執(zhí)行多個(gè)程序,5個(gè)線程會(huì)比5個(gè)sql一個(gè)個(gè)執(zhí)行快因?yàn)槎嗑€程cpu的利用率比一個(gè)線程的利用率高
回答:選用多線程還是IO多路復(fù)用必須要看場(chǎng)景的!選擇select還是epoll也是需要看場(chǎng)景的!如果是短連接,服務(wù)器使用線程池(多線程)處理完畢,馬上進(jìn)行釋放,保證活躍的線程所需要的內(nèi)存和CPU效率是在服務(wù)器承受范圍之內(nèi),那么多線程比IO多路復(fù)用效果要好,因?yàn)闊o(wú)論是select還是epoll都需要去額外的監(jiān)聽,監(jiān)聽到需要數(shù)據(jù)處理,才調(diào)用回調(diào)函數(shù),分配處理線程去執(zhí)行,這段時(shí)間有性能和資源的消耗,這種情況無(wú)...
回答:選用多線程還是IO多路復(fù)用必須要看場(chǎng)景的!選擇select還是epoll也是需要看場(chǎng)景的!如果是短連接,服務(wù)器使用線程池(多線程)處理完畢,馬上進(jìn)行釋放,保證活躍的線程所需要的內(nèi)存和CPU效率是在服務(wù)器承受范圍之內(nèi),那么多線程比IO多路復(fù)用效果要好,因?yàn)闊o(wú)論是select還是epoll都需要去額外的監(jiān)聽,監(jiān)聽到需要數(shù)據(jù)處理,才調(diào)用回調(diào)函數(shù),分配處理線程去執(zhí)行,這段時(shí)間有性能和資源的消耗,這種情況無(wú)...
...entrantLock 其實(shí)現(xiàn)原理有什么不同? 那么請(qǐng)談?wù)?AQS 框架是怎么回事兒? 請(qǐng)盡可能詳盡地對(duì)比下 Synchronized 和 ReentrantLock0 的異同。 ReentrantLock 是如何實(shí)現(xiàn)可重入性的? 除了 ReetrantLock,你還接觸過 JUC 中的哪些并發(fā)工具? 請(qǐng)談?wù)?Re...
...線程下 i++ 結(jié)果正確? 一個(gè)線程如果出現(xiàn)了運(yùn)行時(shí)異常會(huì)怎么樣? 如何在兩個(gè)線程之間共享數(shù)據(jù)? 生產(chǎn)者消費(fèi)者模型的作用是什么? 怎么喚醒一個(gè)阻塞的線程? Java中用到的線程調(diào)度算法是什么 單例模式的線程安全性? 線程類的構(gòu)造...
...招滿了外包,可是部門的人卻發(fā)現(xiàn)工作的確是做不完啊,怎么辦呢? 只好是把任務(wù)排期了(workQueue指的是阻塞隊(duì)列BlockingQueue對(duì)象,這里比作任務(wù)排期),如果誰(shuí)狀態(tài)好可以從排期的任務(wù)中把任務(wù)提前做了。 handler 但是部門的人...
...具體細(xì)節(jié),提供很多對(duì)集合元素進(jìn)行迭代的方法 Iterator 怎么使用?有什么特點(diǎn)? 使用集合類的成員方法獲取Iterator實(shí)例 hasNext,檢查是否具有下一迭代元素 next,獲取下一迭代元素 forEachRemaining,java 8新增的方法,利用函數(shù)式接...
...比如任務(wù)數(shù)量實(shí)在太多線程池處理不過來(lái),對(duì)于這些任務(wù)怎么處理呢?線程執(zhí)行的時(shí)候會(huì)碰到異常或都錯(cuò)誤的情況,這些異常要如何處理?如何保證這些異常的處理不會(huì)導(dǎo)致線程池其他任務(wù)的正常運(yùn)行不出錯(cuò)呢? 總結(jié)一下,這...
...池,而是試圖剖析線程池的實(shí)現(xiàn),比如一個(gè)調(diào)度線程池是怎么實(shí)現(xiàn)的?是靠什么實(shí)現(xiàn)的?為什么能這樣實(shí)現(xiàn)等等問題。 Java線程池實(shí)現(xiàn)架構(gòu) Java中與線程池相關(guān)的類都在java.util.concurrent包下,如下展示了一些: Executor ExecutorService ...
...以及這樣設(shè)計(jì)的原因 HashMap的實(shí)現(xiàn)原理,1.8之后對(duì)于碰撞怎么處理的,如果key沒有實(shí)現(xiàn)compareable接口,紅黑樹根據(jù)什么插入? 聊了下jvm的內(nèi)存結(jié)構(gòu),線程安全的部門,各個(gè)部門的職能? 說明下類的加載過程,類加載的雙親委派模...
...隊(duì)列? 要回答這個(gè)問答,首先來(lái)看看不用線程池的時(shí)候怎么執(zhí)行異步任務(wù) new Thread(() -> { // do something }).start(); 也就是說,每次需要執(zhí)行異步任務(wù)的時(shí)候,新建一個(gè)線程去執(zhí)行,執(zhí)行完就回收了。這會(huì)導(dǎo)致什么問題呢,首先,...
...的錯(cuò)誤。 動(dòng)態(tài)修改 corePoolSize & maximumPoolSize 其實(shí)這個(gè)我沒怎么關(guān)注過,曾經(jīng)在一次面試中被問到過。很簡(jiǎn)單,java.util.concurrent.ThreadPoolExecutor提供了Setter方法,可以直接設(shè)置相關(guān)參數(shù)。按我目前的實(shí)踐經(jīng)驗(yàn),幾乎沒有用到過,但是...
...啥? OK 我們所有的Throwable全部已經(jīng)被setException吃掉了,怎么還會(huì)拋出到外面那層的execute中呢? 所以我之前實(shí)驗(yàn)的時(shí)候,在submit中提交任務(wù)無(wú)論任務(wù)怎么拋異常,在afterExecute中的第二個(gè)參數(shù)是取不到的,原因就在這。 再回頭看...
...接提交給線程處理, 而不保留它, 如果所有線程都在工作怎么辦? 那就*新建一個(gè)線程來(lái)處理這個(gè)任務(wù)!所以為了保證不出現(xiàn)的錯(cuò)誤, 使用這個(gè)類型隊(duì)列的時(shí)候, maximumPoolSize 一般指定成 Integer.MAX_VALUE, 即無(wú)限大. LinkedBlockingQueue: 這個(gè)...
...可能的,一年的經(jīng)驗(yàn)自己完全可以入行了,是時(shí)候該學(xué)習(xí)怎么進(jìn)行需求分析,怎么設(shè)計(jì)數(shù)據(jù)庫(kù),怎么寫各類文檔,怎么寫更好的代碼? 所以說:一個(gè)人在一家公司呆久了,千萬(wàn)不要模式化,一直待著舒適區(qū),因?yàn)楫?dāng)你一旦離開...
...線程下 i++ 結(jié)果正確? 一個(gè)線程如果出現(xiàn)了運(yùn)行時(shí)異常會(huì)怎么樣? 如何在兩個(gè)線程之間共享數(shù)據(jù)? 生產(chǎn)者消費(fèi)者模型的作用是什么? 怎么喚醒一個(gè)阻塞的線程? Java中用到的線程調(diào)度算法是什么 單例模式的線程安全性? 線程類的構(gòu)造...
ChatGPT和Sora等AI大模型應(yīng)用,將AI大模型和算力需求的熱度不斷帶上新的臺(tái)階。哪里可以獲得...
大模型的訓(xùn)練用4090是不合適的,但推理(inference/serving)用4090不能說合適,...
圖示為GPU性能排行榜,我們可以看到所有GPU的原始相關(guān)性能圖表。同時(shí)根據(jù)訓(xùn)練、推理能力由高到低做了...