現(xiàn)在的電腦cpu 都是多核,CPU對(duì)于各個(gè)線程的調(diào)度是隨機(jī)的(分時(shí)調(diào)度),如果程序中 開啟了多個(gè)線程,那么這幾個(gè)線程是分別同時(shí)運(yùn)行在不同的核心上呢,還是由于 JVM對(duì)線程的調(diào)度,使得 這幾個(gè)線程 分時(shí) 跑在一個(gè)核心上呢?
搜了半天 但是都是有些模棱兩可 ,只好特來請(qǐng)教,謝謝!
給你個(gè)明確的說法:是跑在多核心上的。當(dāng)然中間還有一大堆調(diào)用鏈、各種模型、操作系統(tǒng)、JVM的知識(shí),但這些對(duì)你這個(gè)問題不重要。粗淺的理解,就當(dāng)是多個(gè) java 線程同時(shí)塞到 CPU 里面去;一個(gè)線程像面條一樣插在一個(gè) cpu 核心孔里,然后從這頭拉出來(完成計(jì)算),就行了。
而且我猜測你要解決的問題,可以使用多線程去做,放心大膽去做,是能達(dá)到你要的最終結(jié)果的。但一般并不是線程越多越好,對(duì)于解決一個(gè)整體的計(jì)算問題,最終僅是一次計(jì)算而想得到整體結(jié)果的情況,我們一般的做法,是開的線程數(shù)量等于 CPU 的核心數(shù)量,這樣可以減少不必要的資源切換從而更利于效率。
那么,對(duì)于解決整體中含有不定量個(gè)體的問題,你可以先把整體數(shù)量除以 CPU 核心數(shù)量,得到一個(gè)進(jìn)位整數(shù),然后對(duì)集合進(jìn)行數(shù)量切割,每個(gè)小組再啟動(dòng)一個(gè)線程去處理,最后合并結(jié)果集。
當(dāng)然,這種情況下,你如果能使用 java 的 forkjoin 框架來解決,會(huì)優(yōu)雅很多。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。