Ⅰ 一心一用和一心多用有什麼區別,可以學習控制兩種狀態嗎大腦在接受文字(圖像)信息和聲音(音頻)信息時
人要先學會一心一用,然後才能一心多用。一心多用也是分主次的,有個簡單的活動,和一個稍微復雜點的活動,一般人都能同時進行。邊吃邊聊就是一心多用啊。但是,一心多用不可避免的影響這兩件事得效率和效果。如,邊打電話邊開車就是很危險的行為,他使得注意力分散,不能及時的做出反應,事故發生的概率會大大增加。
當然有的人很特殊,或者天生就極端聰明,但畢竟是少數,就是天才還要努力才能成功呢。
其實聽得時候是最鍛煉精神集中度的,聽得好的人,往往能專心做事,效率高。因為聽是有明確目的的,就是搞清別人的思路。但看就不是了,看往往讓人心思到處走,一千個人能看出一千種想法。
Ⅱ 《非常了得》中陳思遠能一心多用,她的腦部構造與常人有什麼不同普通人能通過某些方式鍛煉得到那種能力么
所謂的一心多用,和腦部構造沒有關系,這只是日常生活中的鍛煉做到的
Ⅲ 淺談多核心CPU和SoC晶元及其工作原理
姓名:呂紅霞;學號:20011210203;學院:通信工程學院
轉自https://mp.weixin.qq.com/s/rULXlihPLhZCjnGhbMbCMg
【嵌牛導讀】 本文講解了多核心CPU和SoC晶元及其工作原理
【嵌牛鼻子】 多核CPU,進程,線程
【嵌牛提問】 現在的CPU或SoC基本都是在單晶元中集成多個CPU核心,形成通常所說的4核、8核或更多核的CPU或SoC晶元。為什麼要採用這種方式?多個CPU 核心在一起是如何工作的?CPU核心越多就一定越好嗎?
【嵌牛正文】
要說明什麼是多核心CPU或SoC晶元,首先要從CPU核心(Core)說起。我們知道,CPU是中央處理器(Central Processing Unit)的英文簡稱,它具有控制和信息處理的能力,是電腦和智能設備的控制中樞。如果把傳統CPU晶元中的封裝和輔助電路(例如引腳的介面電路、電源電路和時鍾電路等)排除在外,只保留完成控制和信息處理功能的核心電路,這部分電路就是 CPU核心 ,也簡稱CPU核。一個CPU核心基本上是一個完全獨立的處理器,它可以從內部存儲器中讀取指令,並執行指令指定的控制和計算任務。
如果把 一個 CPU核心和相關輔助電路封裝在一個晶元中,這個晶元就是傳統的 單核心CPU晶元 ,簡稱單核CPU。如果把 多個 CPU核心和相關輔助電路封裝在一個晶元中,這個晶元就是 多核心CPU晶元 ,簡稱多核CPU。當然,多核心CPU晶元會包含更多的輔助電路,以解決多個CPU核心之間的通信和協調問題。
如果在多核心CPU晶元中再集成一些其它功能部件和介面電路,就形成了完整的系統,那麼這個晶元就變成了 多核心SoC晶元 了,簡稱多核SoC。在不嚴格區分的情況下,SoC也可以稱為CPU。
發展多核心CPU的初心源於「人多力量大」的簡單道理。從這個意義上來看,當初晶元集成度不高的時候,Inteli8086 CPU和i8087協處理器應該算是多核心CPU的雛形,是 多晶元協作形成了一個處理核心 ,需要採取許多技術來解決CPU和協處理器之間的合作、協作問題。
今天晶元的集成度很高,單晶元中集成幾個甚至幾十個CPU核心已不在話下,但還是不能滿足超級計算的需要,需要在超級計算機中使用成千上萬塊高性能CPU晶元一起合作、協作,這可以看作 晶元內 多核心、 晶元外 多晶元的多核心CPU集群。
CPU晶元從外觀上看是一塊晶元,但打開封裝來看,內部可能只有一塊裸片(die),也可能是多塊裸片封裝在一起,稱為 多晶元模組 (Multichip Mole,簡稱 MCM ),如圖2b所示。但從軟體角度來看,封裝形式無關緊要,無論是晶元內還是晶元外,CPU核心多少才是最重要的,它們決定著系統的並行運算和處理能力,它們的主頻頻率和核心之間通信方式決定了系統的處理速度。
另外,今天的桌面計算機CPU、手機SoC中還集成了許多圖形處理器(GPU)核心、人工智慧處理器(APU)核心等,這些是否也應該算作多核心CPU和SoC中的「核心」呢?我覺得從廣義角度上應該算吧。
因此,要回顧多核心CPU的發展,大致可以分為 1 .雛形期; 2 . 單晶元單核心; 3 .單晶元多核心; 4 .單核心多晶元; 5 .多核心多晶元幾種情形。這些發展階段不一定按照這個前後順序,可能有交叉時期,也可能有前後顛倒的情形。第2和第3種情形一般是應用在桌面計算機、智能手機等移動終端上的CPU晶元,第4和第5種是應用在伺服器和超級計算機上的CPU晶元。本文限於篇幅和主題集中的需要,主要探討第3種 單晶元多核心 的情況,這種情況下的CPU是 單晶元多處理器 (Chip Multi Processors,簡稱 CMP )模式。
1971 ~2004年,單核心CPU一路獨行 。Intel公司1971年推出全球首款CPU晶元i4004,直到2004年推出超線程的Pentium 4 CPU系列,期間共33年時間。在這期間,CPU晶元很好地沿著摩爾定律預示的規律發展,沿著集成度不斷翻倍、主頻不斷提升、晶體管數量快速增加的道路前進,這是一條單核心CPU不斷迭代升級的發展之路。
但是,當晶體管數量大幅增加導致功耗急劇增長,CPU晶元發熱讓人難以接受,CPU晶元可靠性也受到很大影響的時候,單核心CPU發展似乎到了窮途末路。摩爾定律的提出者 戈登.摩爾 也依稀覺得「尺寸不斷縮小」、「主頻為王」這條路子即將走到盡頭。2005年4月他曾公開表示,引領晶元行業接近40年的摩爾定律將在10~20年內失效。
其實,早在上世紀90年代末,就有許多業界人士呼籲用CMP技術實現的多核心CPU替代單線程單核心CPU。IBM、惠普、Sun等高端伺服器廠商,更是相繼推出了多核心伺服器CPU。但是,由於伺服器CPU晶元價格太高、應用面較窄,並未引起大眾廣泛關注。
2005年初AMD搶先推出了64位CPU晶元,並率先Intel發表聲明保證其64位CPU的穩定性和兼容性,Intel才想起了利用「多核心」這一武器進行「帝國反擊戰」。2005年4月,Intel倉促推出簡單封裝的2核心Pentium D和Pentium4至尊版840。之後不久,AMD也發布了雙核心皓龍(Opteron)和速龍(Athlon)CPU晶元[9]。
2006 年被認為是多核心CPU的元年 。這年7月23日,Intel基於酷睿(Core)架構的CPU發布。11月,Intel又推出了面向伺服器、工作站和高端PC機的至強(Xeon)5300和酷睿2雙核心和4核心至尊版系列CPU。與上一代台式機CPU相比,酷睿2雙核心CPU在性能方面提高40%,功耗反而降低40%。
作為對Intel的回應,7月24日,AMD宣布對雙核Athlon64 X2處理器進行大降價。兩大CPU巨頭在宣傳多核心CPU時,都會強調其節能效果。Intel發布的低電壓版4核心至強CPU功耗僅為50瓦。而AMD的「Barcelona」4核心CPU的功耗也沒超過95瓦。在Intel高級副總裁Pat Gelsinger看來,摩爾定律還是有生命力的,因為「CPU從單核心到雙核心,再到多核心的發展,可能是摩爾定律問世以來,CPU晶元性能提升最快的時期」 [9]。
CPU 技術發展要比軟體技術發展更快 ,軟體對多核心CPU的支持相對滯後。如果沒有操作系統的支持,多核心CPU的性能提升優勢不能發揮出來。同樣運行Win7的情況下,4核心CPU和8核心CPU所帶來的差異化體驗並不明顯,導致這種情況的原因是Win7根本沒有對8核心CPU進行相應的優化。而在Win10出來後,8核心CPU所帶來的體驗速度就明顯要比4核心處理器快很多,這源於微軟在Win10上對多核心CPU的支持做了優化。而且微軟還將在Win10上針對多核心CPU做進一步適配優化。
目前 核心最多的伺服器CPU 有Intel至強鉑金9282,56核心112線程,引線焊球多達5903個,估計售價約4萬美元;AMD霄龍 7H12,64核心128線程,散熱設計功耗280W。這兩款CPU都需要採用液冷散熱。 核心最多的台式機CPU 有Intel酷睿i97980XE至尊版,18核心36線程,散熱設計功耗165W,售價1999美元;AMD的Ryzen9 5950X,16核心32線程,散熱設計功耗105W,售價6049元。 核心最多的手機SoC 有Apple M1、麒麟9000、高通驍龍 888等。多核心CPU或者多核心SoC似乎成為一種潮流,但是不是核心越多CPU就越好呢?在不考慮其它因素影響,單從技術和集成度考慮的話,有人甚至預測到2050年,人們可能會用上1024個核心的CPU晶元。
我們先從任務處理的角度來看這個問題。如果把CPU處理的事情叫做任務的話,以前的CPU只有一個核心,CPU只會「一心一用」地處理一個任務,幹完一件事再接著干下一件事。專業上稱之為 串列單任務處理 。這在DOS操作系統的時代是合適的,這個時期對CPU的追求只有一條,那就是處理速度要盡可能地快。在Windows操作系統出現後,出現了多任務的處理需求,要求CPU可以「一心多用」,同時干多件事情。專業上稱之為 分時多任務處理 。這個時期對CPU的追求 一是 處理速度要盡可能地快, 二是 同時可處理的任務盡可能地多。其實這種「一心多用」的處理方法是把時間分配給了多個任務,從宏觀上看CPU處理的任務多了,但從某項任務來看CPU對該項任務的處理速度變慢了。
要實現CPU處理的任務更多、處理速度更快,人們自然想到了在晶元中集成多個CPU核心,採用「多心多用」的方式處理事務,因而就出現了多核心CPU的需求,而這種需求在伺服器CPU應用方面顯得尤為迫切。
我們再從提高CPU時鍾頻率,加快處理速度的角度來看這個問題。無論是「一心一用」、「一心多用」、還是「多心多用」,只要提高了CPU的時鍾頻率,CPU的處理速度都會加快。如論是單任務還是多任務,就會在更短時間完成任務。因此,CPU發展的歷史就是隨著晶元技術的進步,CPU的時鍾頻率不斷提升的歷史,從早期的MHz級別不斷提升到目前的GHz級別,大約提升了1000倍左右。無論是單核心還是多核心,CPU時鍾頻率是人們選用CPU晶元的重要指標。
過去很長一段時間里,隨著Intel和AMD CPU速度越來越快,x86操作系統上的軟體的性能和速度自然會不斷提高,系統整機廠家只要對現有軟體作輕微設置就能坐享電腦系統整體性能提升的好處。
但是隨著晶元工藝沿著摩爾定律發展,CPU集成度提高、晶體管密度加大,時鍾頻率提升,直接導致CPU晶元的功率不斷增大,散熱問題成為一個無法逾越的障礙。據測算,CPU主頻每增加1GHz,功耗將上升25瓦,而在晶元功耗超過150瓦後,現有的風冷散熱將無法滿足要求。2003年前後Intel推出的主頻為3.4GHz的Pentium4至尊版CPU晶元,最高功耗已達135瓦,有人給它送了一個「電爐」的綽號,更有好事者用它來玩煎蛋的游戲。現在的伺服器CPU晶元Xeon W-3175標稱功耗為255W,默認頻率實測能達到380W,超頻的話甚至會突破500W,必須採用高端水冷系統來降溫。
所以,功耗極限制約著CPU頻率的提升。下圖是CPU功率密度隨時間的變化趨勢圖,IntelPentium之後的CPU晶元,由於晶體管密度和時鍾頻率提升,CPU晶元的功率密度陡然上升,CPU產生的熱量將會超過太陽表面。
綜上所述,追求多任務處理功能,追求處理速度提升是CPU晶元設計的兩大目標。以提升CPU時鍾頻率而加快處理速度又受到CPU功耗極限的制約,多核心CPU晶元成為解決上述矛盾的必由之路。目前,多核心CPU和SoC已成為處理器晶元發展的主流。
與單核心CPU相比,多核心CPU在體系結構、軟體、功耗和安全性設計等方面面臨著巨大的挑戰,但也蘊含著巨大的潛能。本文參考了後附的參考資料1,對多核心CPU用到的技術作如下簡單介紹。
1. 超線程技術
一個傳統CPU核心只有一個運算處理單元(Processing Unit,簡稱PU)和一個架構狀態單元(Architectual State,簡稱AS),在同一時間只能處理一個軟體線程(Thread)。採用了 超線程 (Hyper-Threading,簡稱 HT )技術的CPU核心中包含一個PU和兩個AS,兩個AS共用這個PU。軟體在CPU核心上運行時,AS與軟體線程對接,並把線程的任務分配到PU中的相關單元中。所以,兩個AS就可以處理兩個軟體線程。
用生產車間打個比方,PU是生產部門,有幾台機床用於生產;AS是跟單員,他同時只能跟一個任務訂單;軟體線程好比是任務訂單。如果生產車間只有一個AS時,這個車間同時只能處理一個任務訂單,PU的有些機床有事干,有些機床可能無事干而閑置。如果有兩個AS時,就能處理兩個任務訂單,並把任務分配到不同的機床上去完成。
所以,具有超線程的CPU核心的集成度增加量不大,但有兩個AS後使它看起來像兩個邏輯的CPU核心,就可以同時處理兩個軟體線程,大約可以提高40%的處理能力。所以,我們經常可以看到CPU晶元廣告,說某多核心CPU晶元是N個核心,2×N個線程,就是採用了超線程帶來的好處。否則,如果沒有採用超線程技術的話,多核心CPU晶元參數就只能寫成N個核心,N個線程。下圖給出了2核心CPU無超線程和有超線程的示意圖。
2. 核心結構研究
多核心CPU的結構分成 同構 (homogeneous)多核和 異構 (heterogeneous)多核兩類,同構多核是指晶元內多個CPU核心的結構是相同的,而異構多核是指晶元內多個CPU核心的結構各不相同。面對不同的應用場景,研究核心結構的實現方式對CPU整體性能至關重要。核心本身的結構,關繫到整個晶元的面積、功耗和性能。怎樣繼承和發展傳統CPU的成果,也直接影響多核的性能和實現周期。同時,核心所用的指令系統對系統的實現也是很重要的,多核心採用相同的指令系統還是不同的指令系統,能否運行操作系統等,也是設計者要研究的重要問題。
3.Cache 設計技術
CPU和主存儲器之間的速度差距對多核心CPU來說是個突出的矛盾,因此必須使用多級Cache來緩解。可分為共享一級Cache、共享二級Cache和共享主存三種方式。多核心CPU一般採用共享二級Cache的結構,即每個CPU核心擁有私有的一級Cache,並且所有CPU核心共享二級Cache。
Cache本身的體系結構設計直接關繫到系統整體性能。但是在多核心CPU中,共享Cache或獨有Cache孰優孰劣、是否在片上建立多級Cache、以及建立幾級Cache等,對整個晶元尺寸、功耗、布局、性能以及運行效率等都有很大的影響,需要認真研究和慎重對待。同時還要考慮多級Cache引發的一致性問題。
4. 核心間通信技術
多核心CPU的各核心同時執行程序,有時需要在核心之間進行數據共享與同步,因此硬體結構必須支持CPU核心間的通信。高效通信機制是多核心CPU高性能的重要保障,比較主流的片上高效通信機制有兩種, 一種 是基於匯流排共享的Cache結構,另 一種 是基於片上的互連結構。
匯流排共享Cache結構 是指每個CPU核心擁有共享的二級或三級Cache,用於保存比較常用的數據,並通過核心間的連接匯流排進行通信。它的優點是結構簡單,通信速度高,缺點是基於匯流排的結構可擴展性較差。
片上互連的結構 是指每個CPU核心具有獨立的處理單元和Cache,各個CPU核心通過交叉開關電路或片上網路等方式連接在一起。各個CPU核心間通過消息進行通信。這種結構的優點是可擴展性好,數據帶寬有保證,缺點是硬體結構復雜,且軟體改動較大。
5. 匯流排設計技術
傳統CPU中,Cache不命中或訪問存儲器事件都會對CPU的執行效率產生負面影響,而匯流排介面單元(BIU)的工作效率會決定此影響的程度。在多核心CPU中,當多個CPU核心同時要求訪問內存,或多個CPU核心內私有Cache同時出現Cache不命中事件時,BIU對這些訪問請求的仲裁機制效率,以及對外存儲訪問的轉換機制的效率決定了多核心CPU系統的整體性能。
6. 針對多核心的操作系統
對於多核心CPU,優化操作系統的 任務調度 是提升執行效率的關鍵。任務調度演算法有 全局 隊列調度和 局部 隊列調度之分。前者是指操作系統維護一個全局的任務等待隊列,當系統中有一個CPU核心空閑時,操作系統就從全局任務等待隊列中選取就緒任務開始在此核心上執行。其優點是CPU核心利用率較高。後者是指操作系統為每個CPU核心維持一個局部的任務等待隊列,當系統中有一個CPU核心空閑時,便從該核心的任務等待隊列中選取就緒任務來執行。其優點是有利於提高CPU核心局部Cache命中率。大多數的多核心CPU操作系統採用的是基於全局隊列的任務調度演算法。
多核心CPU的中斷處理和單核CPU有很大不同。CPU核心之間需要通過中斷方式進行通信和協調,所以,CPU核心的本地中斷控制器和仲裁各CPU核心之間中斷的全局中斷控制器需要封裝在晶元內部。
另外,多核心CPU操作系統是一個多任務系統。由於不同任務會競爭共享資源,因此需要系統提供同步與互斥機制。而傳統的用於單核心CPU的解決機制並不能滿足多核心的情況,需要利用硬體提供的「讀-修改-寫」的原始操作或其他同步互斥機制來進行保證。
7. 低功耗設計技術
每兩三年CPU晶體管密度和功耗密度都會翻倍。低功耗和熱優化設計已經成為多核心CPU設計的重點。需要同時在操作系統級、演算法級、結構級、電路級等多個層次上考慮。每個層次上實現的效果不同,抽象層次越高,功耗和溫度降低的效果越明顯。
8. 可靠性及安全性設計技術
在今天的信息社會,CPU的應用無處不在,對CPU的可靠性和安全性提出了更高要求。一方面多核心CPU復雜性提高,低電壓、高主頻、高溫度對維持晶元安全運行帶來挑戰。另一方面,來自外界惡意攻擊越來越多,手段越來越先進,高可靠、安全性設計技術越來越受到重視。
要弄明白多核心CPU是如何工作,要從應用程序、操作系統和CPU核心一起來分析。Windows操作系統作為任務調度者,按照 進程 (Process)和 線程 (Thread)為應用程序(Program)分配程序執行的硬體資源——CPU核心。一個進程對應一個應用程序,但是一個應用程序可以同時對應多個進程,通過多個進程來完成這個程序的執行。
應用程序未執行的時候是「靜態」的,程序一旦被用戶啟動執行,就被操作系統接管變成「動態」的了。操作系統按照一個一個的 進程 管理著一批被用戶啟動了的程序。所以一個 進程 可以看作是一個「執行中的程序」,進程中包括了由操作系統分配給這個程序的基本資源。
一個進程又被細分為多個 線程 ,只有 線程 才能通過操作系統獲得CPU核心的使用許可權來讓自己運行。只包含一個線程的進程可以叫做 單線程 程序,如果包含多個線程的進程,就可以叫做 多線程 程序了。
程序的線程要想獲得CPU時間,必須進入操作系統的線程隊列排隊,經過操作系統調度之後,獲得某個CPU核心的執行時間。操作系統對CPU核心的分派是非常復雜的過程,誰也無法用簡短的文字說清楚具體詳細的過程。以下按單核心CPU和4核心CPU兩種情況來示意說明,程序進程的一個個線程,是如何分派到CPU核心上進行執行的[7]。
如果CPU是單核心的話,而且沒有採取超線程技術,線程隊列就只有1個,線程的選擇也只有1個。如果採取了超線程技術,單核心就擴展成2個邏輯核心,線程隊列就有2個,線程的選擇就有2個。
如果站在多核心CPU角度看,每個CPU核心不斷從操作系統收到要執行的軟體線程,按照程序指令去完成規定任務,它可能要使用存儲器、運算器、輸入輸出等部件,還要與其它CPU核心進行通信和傳遞數據,完成任務後還要報告。這些過程可看成一個一個的事件,都要通過事件中斷處理部件來協調。多核心CPU的硬體調度處理模式大致有三種[8][18]。
1. 對稱多處理 (Symmetric Multi-Processing,簡稱 SMP )是目前使用最多的模式。在SMP模式下,一個操作系統同等地管理著各個CPU核心,並為各個核心分配工作負載。目前,大多數的操作系統都支持SMP模式,例如Linux,Windows,Vxworks等。另外,這種模式通常用在同構多核CPU上,因為異構多核CPU的結構不同,實現SMP比較復雜。
2. 非對稱多處理 (Asymmetric Multi-Processing,簡稱 AMP )是指多個核心相對獨立地運行著不同的任務,每個核心可能運行不同的操作系統或裸機程序,或者不同版本的操作系統,但是有一個 主導 的CPU核心,用來控制其它 從屬 的CPU核心以及整個系統。這種模式大多情況是異構多核心CPU。例如MCU + DSP,MCU +FPGA等。當然,同構多核心CPU也可以用。
3. 邊界多處理 (Bound Multi-processing,簡稱 BMP )與SMP基本相同,唯一區別是開發者可以定義某個任務僅在某個CPU核心上執行。
以上只是原理性的簡單介紹,如果要了解多核心CPU的硬體調度原理和實現細節,恐怕只能打進Intel或AMD公司內部,才能了解更多技術詳情。
多核心CPU中的核心是否越多越好,多CPU系統中的CPU晶元是否也越多越好?同樣條件下是否具有超線程就比不具有超線程的好?回答是仁者見仁,智者見智。主要是要分清用在哪些場合,不能一概而論。
首先,多核心CPU或者多CPU之間需要同步和調度,這是以時間開銷和算力損耗為代價的。如果CPU核心數或者CPU晶元數增加對系統處理能力提升是加分項的話,同步和調度帶來的時間開銷和算力損耗就是減分項。如果加分大於減分,而且成本增加可接受的話,則方案是可行的,否則就是不值當的方案。系統方案的評判除了要考慮CPU核心數量以外,還要考慮操作系統的差異、調度演算法的不同,應用和驅動程序特點等因素,它們共同影響著系統的處理速度。以下是一些文章的討論觀點。
1 . CPU核心越多,執行速度不一定越快。這里說的是「不一定」,因為一個線程可能要等待其它線程或進程完成後,才能輪到它繼續執行。在它等待別的線程或進程的時候,即便排隊隊列輪到了它,它也只能放棄運行權利而繼續等待,讓隊列後續線程超過它在CPU上執行。對它這個線程的程序來說是變慢了,但對系統來說,它起碼它讓開了位置讓其它線程繼續運行。多核心CPU肯定可以加速批量進程的執行,但對某個進程或者某類型的程序來說,未必是最快的。
2 .智能手機要向用戶提供優秀的使用體驗,不僅僅是靠CPU性能一個方面。除了CPU核心數這個因素以外,還應包括決定通信質量的基帶晶元的性能,再加上GPU的性能、游戲和VR應用性能等。系統綜合性能好才是真的好。
3 .聯發科2015年推出10核心、3重架構等手機SoC晶元技術,後來又開發了10核心、4重架構helio X30,通過多重架構的方式來降低功耗。雖然聯發科在多核心SoC方面的技術優勢是毋庸置疑,但是高通在2015年底推出了僅有四個核心的驍龍820晶元,蘋果手機較早使用的SoC晶元也不過是雙核心而已。這些都表明,對於智能手機而言,多核心CPU或SoC的意義到底大不大,不可絕對斷言,需要從系統角度分析才能得出正確結論。
結語 :多核心CPU和SoC是為了滿足整機系統對處理能力和處理速度不斷提升的需求,在單核心CPU沿著摩爾定律向前發展,受到了晶元功率極限阻礙時,人們不得不選擇的一種突破路線。多核心CPU推動著操作系統的更新和升級,操作系統又決定了多核心CPU效能的發揮。多核心CPU技術的難點是多核心之間的信息傳遞、數據同步和任務調度等。系統性能優劣不能只考慮CPU核心數量,還要考慮操作系統、調度演算法、應用和驅動程序等。多核心CPU技術和FinFET等3D晶元技術可以看作是延續摩爾定律生命的兩大關鍵技術。
Ⅳ 什麼是多線程,多進程
1、多線程:是指從軟體或者硬體上實現多個線程並發執行的技術。具有多線程能力的計算機因有硬體支持而能夠在同一時間執行多於一個線程,進而提升整體處理性能。具有這種能力的系統包括對稱多處理機、多核心處理器以及晶元級多處理或同時多線程處理器。
在一個程序中,這些獨立運行的程序片段叫作「線程」,利用它編程的概念就叫作「多線程處理」。具有多線程能力的計算機因有硬體支持而能夠在同一時間執行多於一個線程,進而提升整體處理性能。
2、多進程:Windows 應用程序中消息有兩種送出途徑;直接和排隊。Windows或某些運行的應用程序可直接發布消息給窗口過程,或者,消息可送到消息列象連續不斷輪詢消息隊列的OS中當前執行的每個進程都 事件驅動程序不是由事件的順序來控制,而是由事件的發生來控,而事件的發生是隨機的、不確定的,這就允許程序的用戶用各種合理的順序來安排程序的流程。
(4)什麼是一心多用技術擴展閱讀:
多線程優點:
1、使用線程可以把占據時間長的程序中的任務放到後台去處理
2、用戶界面可以更加吸引人,這樣比如用戶點擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度
3、程序的運行速度可能加快
4、在一些等待的任務實現上如用戶輸入、文件讀寫和網路收發數據等,線程就比較有用了。在這種情況下可以釋放一些珍貴的資源如內存佔用等等。
5、多線程技術在IOS軟體開發中也有舉足輕重的位置。
參考資料來源:
網路-多線程
網路-多進程
Ⅳ 為什麼手機不能像電腦一樣「一心多用」
手機之所以不能像電腦一樣,一心多用,我覺得很大一部分原因也是因為手機屏幕有限,因為手機要做到和電腦一樣多窗口化不僅在性能上,而且還要在系統配備上有更高的要求,而且現在許多軟體默認就是全屏開啟,所以每次如果你要同時干很多事情,你就要把它放在後台。
最近小米MIUI12也是推出了這個分屏功能,他也是成功的將分屏打破了傳統的規格,將屏幕得到了最大的利用化,也是受到了許多人的好評,傳統的手機確實不能像電腦一樣,一心多用,但是如今隨著科技的不斷發展,我相信在不久的將來,手機屏幕也會和電一樣,實現多功能化。 雖然屏幕也受到了很大的限制,但是在軟體上進行一些改良和設計,使得他們更加方便簡單,我覺得分屏設計也會加以更好的利用。
Ⅵ java中是單進程多線程還是多進程多線程
線程和進程都是現在電腦概念里比較時髦的用語,什麼是多線程,什麼是多進程?本文詳細的給您介紹一下,希望能增進您對當代電腦技術的了解,有不到之處,還往高手予以更正。進程(英語:Process,中國大陸譯作進程,台灣譯作行程)是計算機中已運行程序的實體。進程本身不會運行,是線程的容器。程序本身只是指令的集合,進程才是程序(那些指令)的真正運行。若干進程有可能與同一個程序相關系,且每個進程皆可以同步(循序)或不同步(平行)的方式獨立運行。進程為現今分時系統的基本運作單位線程(英語:thread,台灣譯為運行緒),操作系統技術中的術語,是操作系統能夠進行運算調度的最小單位。它被包涵在進程之中,一條線程指的是進程中一個單一順序的控制流,一個進程中可以並發多個線程,每條線程並行執行不同的任務。在UnixSystemV及SunOS中也被稱為輕量進程(lightweightprocesses),但輕量進程指內核線程(kernelthread),而把用戶線程(userthread)稱為線程。線程是獨立調度和分派的基本單位。線程可以操作系統內核調度的內核線程,如Win32線程;由用戶進程自行調度的用戶線程,如LinuxPortableThread;或者由內核與用戶進程,如Windows7的線程,進行混合調度。同一進程中的多條線程將共享該進程中的全部系統資源,如虛擬地址空間,文件描述符和信號處理等等。但同一進程中的多個線程有各自的調用棧(callstack),自己的寄存器環境(registercontext),自己的線程本地存儲(thread-localstorage)。一個進程可以有很多線程,每條線程並行執行不同的任務。在多核或多CPU,或支持Hyper-threading的CPU上使用多線程程序設計的好處是顯而易見,即提高了程序的執行吞吐率。在單CPU單核的計算機上,使用多線程技術,也可以把進程中負責IO處理、人機交互而常備阻塞的部分與密集計算的部分分開來執行,編寫專門的workhorse線程執行密集計算,從而提高了程序的執行效率進程是資源分配的最小單位,線程是CPU調度的最小單位。線程和進程的區別在於,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧和程序計數器為其執行上下文.多線程主要是為了節約CPU時間,發揮利用,根據具體情況而定.線程的運行中需要使用計算機的內存資源和CPU。多進程:進程是程序在計算機上的一次執行活動。當你運行一個程序,你就啟動了一個進程。顯然,程序是死的(靜態的),進程是活的(動態的)。進程可以分為系統進程和用戶進程。凡是用於完成操作系統的各種功能的進程就是系統進程,它們就是處於運行狀態下的操作系統本身;所有由用戶啟動的進程都是用戶進程。進程是操作系統進行資源分配的單位。進程又被細化為線程,也就是一個進程下有多個能獨立運行的更小的單位。在同一個時間里,同一個計算機系統中如果允許兩個或兩個以上的進程處於運行狀態,這便是多任務。現代的操作系統幾乎都是多任務操作系統,能夠同時管理多個進程的運行。多任務帶來的好處是明顯的,比如你可以邊聽mp3邊上網,與此同時甚至可以將下載的文檔列印出來,而這些任務之間絲毫不會相互干擾。那麼這里就涉及到並行的問題,俗話說,一心不能二用,這對計算機也一樣,原則上一個CPU只能分配給一個進程,以便運行這個進程。我們通常使用的計算機中只有一個CPU,也就是說只有一顆心,要讓它一心多用,同時運行多個進程,就必須使用並發技術。實現並發技術相當復雜,最容易理解的是「時間片輪轉進程調度演算法」,它的思想簡單介紹如下:在操作系統的管理下,所有正在運行的進程輪流使用CPU,每個進程允許佔用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流為多個進程服務,就好象所有的進程都在不間斷地運行一樣。但實際上在任何一個時間內有且僅有一個進程佔有CPU。如果一台計算機有多個CPU,情況就不同了,如果進程數小於CPU數,則不同的進程可以分配給不同的CPU來運行,這樣,多個進程就是真正同時運行的,這便是並行。但如果進程數大於CPU數,則仍然需要使用並發技術。進行CPU分配是以線程為單位的,一個進程可能由多個線程組成,這時情況更加復雜,但簡單地說,有如下關系:匯流排程數CPU數量:並發運行並行運行的效率顯然高於並發運行,所以在多CPU的計算機中,多任務的效率比較高。但是,如果在多CPU計算機中只運行一個進程(線程),就不能發揮多CPU的優勢。這里涉及到多任務操作系統的問題,多任務操作系統(如Windows)的基本原理是:操作系統將CPU的時間片分配給多個線程,每個線程在操作系統指定的時間片內完成(注意,這里的多個線程是分屬於不同進程的).操作系統不斷的從一個線程的執行切換到另一個線程的執行,如此往復,宏觀上看來,就好像是多個線程在一起執行.由於這多個線程分屬於不同的進程,因此在我們看來,就好像是多個進程在同時執行,這樣就實現了多任務多線程:在計算機編程中,一個基本的概念就是同時對多個任務加以控制。許多程序設計問題都要求程序能夠停下手頭的工作,改為處理其他一些問題,再返回主進程。可以通過多種途徑達到這個目的。最開始的時候,那些掌握機器低級語言的程序員編寫一些「中斷服務常式」,主進程的暫停是通過硬體級的中斷實現的。盡管這是一種有用的方法,但編出的程序很難移植,由此造成了另一類的代價高昂問題。中斷對那些實時性很強的任務來說是很有必要的。但對於其他許多問題,只要求將問題劃分進入獨立運行的程序片斷中,使整個程序能更迅速地響應用戶的請求。最開始,線程只是用於分配單個處理器的處理時間的一種工具。但假如操作系統本身支持多個處理器,那麼每個線程都可分配給一個不同的處理器,真正進入「並行運算」狀態。從程序設計語言的角度看,多線程操作最有價值的特性之一就是程序員不必關心到底使用了多少個處理器。程序在邏輯意義上被分割為數個線程;假如機器本身安裝了多個處理器,那麼程序會運行得更快,毋需作出任何特殊的調校。根據前面的論述,大家可能感覺線程處理非常簡單。但必須注意一個問題:共享資源!如果有多個線程同時運行,而且它們試圖訪問相同的資源,就會遇到一個問題。舉個例子來說,兩個線程不能將信息同時發送給一台列印機。為解決這個問題,對那些可共享的資源來說(比如列印機),它們在使用期間必須進入鎖定狀態。所以一個線程可將資源鎖定,在完成了它的任務後,再解開(釋放)這個鎖,使其他線程可以接著使用同樣的資源。多線程是為了同步完成多項任務,不是為了提高運行效率,而是為了提高資源使用效率來提高系統的效率。線程是在同一時間需要完成多項任務的時候實現的。一個採用了多線程技術的應用程序可以更好地利用系統資源。其主要優勢在於充分利用了CPU的空閑時間片,可以用盡可能少的時間來對用戶的要求做出響應,使得進程的整體運行效率得到較大提高,同時增強了應用程序的靈活性。更為重要的是,由於同一進程的所有線程是共享同一內存,所以不需要特殊的數據傳送機制,不需要建立共享存儲區或共享文件,從而使得不同任務之間的協調操作與運行、數據的交互、資源的分配等問題更加易於解決。進程間通信(IPC,Inter-ProcessCommunication),指至少兩個進程或線程間傳送數據或信號的一些技術或方法。進程是計算機系統分配資源的最小單位。每個進程都有自己的一部分獨立的系統資源,彼此是隔離的。為了能使不同的進程互相訪問資源並進行協調工作,才有了進程間通信。這些進程可以運行在同一計算機上或網路連接的不同計算機上。進程間通信技術包括消息傳遞、同步、共享內存和遠程過程調用。
Ⅶ 一心多用是什麼人格
人不能一心多用。嚴格意義上來講。人的大腦不支持「一心多用」!人們廣泛上說某某可以一心多用,可以同時做什麼什麼事情,更多的建立在多次訓練後的結果,將某種行為固化成為一種簡單的動作程序,這樣當然就可以同時執行了。某些人確實可以在沒做過某些事的前提下,進行一心多用的同時做好幾件事,但是那都是建立在大腦數據之上完成的,簡單說,你的大腦已經對這件事進行了數據採集,過程的模擬實現(幻想),之後你嘗試所謂的一心多用,確實就可以實現了,舉個例子:同時畫圓和正方形,一個成年人第一次進行這樣的嘗試,幾乎也可以完成,但是絕對不標准,甚至失敗,並且做之前,他都進行了思考,思考的過程,就是大腦建模模擬並盡量固化,從而實現的一個表現,這也證明了,你的大腦只有一個聚焦點。從另一個角度將:你不可能一心二用,或者多用,那是人格分裂!,從哲學和思維上講,我是誰?你就是你大腦中的一個邏輯思維體,我們假設:假如你可以一心多用,那麼你將可以對兩件或者多件事情進行處理並表達出不同的意見,同時即也能對一件事進行不同方式的處理和不同的意見結果,即:多重人格,那麼你也就不是你了,顯然作為碳基生命體,人類只是一個個體,而不是多個個體的合集,一心多用的本質毫無意義。
Ⅷ 什麼是並發運行
1、並發運行就是讓計算機同時運行幾個程序或同時運行同一程序多個進程或線程。
2、早期的計算機只具有一個中央處理器(CPU)並且是單核(只有一個運算器)的,這種情況下計算機操作系統採用並發技術實現並發運行,具體做法是採用「 時間片輪詢進程調度演算法」,它的思想簡單介紹如下: 在操作系統的管理下,所有正在運行的進程輪流使用CPU,每個進程允許佔用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流為多個進程服務,就好象所有的進程都在不間斷地運行一樣。但實際上在任何一個時間內有且僅有一個進程佔有CPU及CPU的運算器。
3、現階段許多計算機具有多個中央處理器或一個處理器具有多個運算器(多核),情況就不同了,如果進程數小於CPU或運算器數,則不同的進程可以分配給不同的CPU或運算器來運行,這樣,各個進程就是真正同時運行的,這便是並行。但如果進程數大於CPU或運算器數,則仍然需要使用並發技術。
4、有些操作系統並不支持多個CPU或多核CPU,如 ms winodws 9x、3.x,這樣的操作系統多個CPU、或多核CPU對它們來說是無用的。
Ⅸ 如何保證自己充分地利用自己的時間
充分利用時間資源
數學家華羅庚說過:「成功的人無一不是利用時間的能手!」
實際上,只要扎扎實實地用好每一分鍾,幾乎不可能不能成才、有所作為、享受美好的生活及健康長壽。有些人一生都沒有利用好時間,有些人只是利用好了青春,有些人只是利用了一生中的幾年,一流人才在盡量利用好每一天,而高手們在盡量利用好每一分鍾乃至每一秒鍾。縱觀高級人才的行為,很少有浪費時間的行為,他們的成功實質上時間利用上的成功。
充分利用時間,實質上就是以較少的時間做較多的事情。辦每件事都要考慮節約時間的問題。有些事情不能節約時間,為了保險還要投入較多的時間。例如,試驗新的水稻品種,要經過一定時間的試驗成功之後,才能全面推廣。如果急於推廣,有時會造成很大的損失。
充分利用時間是一個永恆的問題,人類利用時間的能力在不斷進步。如何充分利用時間呢?
一、以較小的時間單位辦事。這樣有利於充分安排和利用每一點點時間,一時節約的時間和精力或許不多,但長期積累,可節約大量的時間。許多科學家、企業家、政治家辦事常以小時、分鍾為單位,而一般人常以天為時間單位。美國人辦事常以小時、分鍾為單位來計算,而我們辦事常以一天、一周為單位來計算。可見,我們的時間觀念遠遠比不上美國人,因而急需改進。
猶太人把時間視作金錢,常以1分鍾得到多少錢的概念來工作。猶太老闆請員工做事,工薪是以小時計算的。猶太人會見客人,十分注意恪守時間,絕不拖延。客人來訪,必須要預約時間,否則要吃閉門羹。猶太人對於突然來客是十分討厭的,如果是做生意,可能會導致失敗。
二、多限時。人的心理很微妙,一旦知道時間很充足,注意力就會下降,效率也會跟著降低;一旦知道必須在什麼時間里完成某事,就會自覺努力,使得效率大大提高。人的潛力是很大的,多限制時間通常不會影響心身健康,卻可大大提高辦事效率,何樂而不為呢?
大科學家愛因斯坦成才途徑是艱難的。對他而言,根本就談不上什麼科學研究條件。大學畢業後,盡管他想當一名物理學家,由於是猶太人,他才當上一個郵政局的小職員。但艱難的生活並沒有動搖他攀登科學高峰的決心。他將一天8小時的工作有4小時內幹完。其餘的時間用來進行學習和研究。
對多數事情而言,既可在較長的時間里做完,也可在較短的時間里做完,彈性相當大。多限制時間有助於減少辦事時間,從而達到充分利用時間的目的。一件事情8小時可以做完,如果只給4小時,也可以想辦法完成。例如,開會最好限制時間,並提前告訴參加會議者需要多長時間,這樣既讓他們好安排時間,又利於減少開會時間。又如,約見朋友時,先說明自己想要多少時間交談,有了這個限制,大家就會認真交談及直奔主題,避免了無謂的聊天,使得交談的效率大大提高。再如,有事與他人協商時,不妨請對方在指定的時間內答復,以免浪費時間。比如說:「這件事你考慮一下,下午打個電話答復我,好嗎?」一般不要說:「你想好了,打個電話給我。」否則,對方很可能會拖延較長時間,而你卻一直地等,既浪費時間,又讓人厭煩,不可取。
三、平常要充分利用時間,關鍵時刻要搶時間。如果搶時間的能力差,就很容易在關鍵時刻失敗,因此,每個人都要掌握好搶時間的技術。
四、採用先進的工具和技術節約時間。這樣一時節約的時間或許不多,但長期積累則很多。假如一生都盡量採用較先進的工具和技術,往往可以取得成功。盡管使用先進的工具和技術可能要花不小的代價,但與長期積累所節約的時間相比,往往是值得的。
電腦是人類的好助手,花一些時間精通電腦很有好處。隨身攜帶一個筆記本電腦,乘飛機、坐汽車、坐火車都可以學習、工作和娛樂。
五、把自己的時間安排得滿滿的,從而促使自己努力。這是充分利用時間的最好辦法。假如給自己安排的事情不多,那麼,無論如何認真,時間還是沒有被充分利用。
把自己一生要做的事情都安排得滿滿的,比如一生准備干多少事業,把自己的時間安排得滿滿的,從而促使自己勤奮。這一時對充分利用時間或許不很有利,但一生積累,的確非常有益。
六、優先辦理重要的事情。所做的事情越有意義,時間的利用率就越高,反之,時間的利用率就越低。如果把大部分時間用在鎖碎的事情上,那是非常不應該的。
七、投入最多的時間發揮自己的特長。發揮特長有助於個人發展,因此,應投入較多的時間發揮特長。投入於特長的時間越多,對個人的發展越有利,一生的時間利用率也就越高。
八、通過合作節約時間。對於一件事,可分割成幾個較小的部分,自己只做其中一部分,其它部分讓別人去做。這樣可為自己節約很多時間。比如,將部分工作(特別是煩瑣事務)分給下屬去做;請咨詢公司收集有關信息。與人協作時,最好找效率不低於自己的人作夥伴;對比自己更重要的人,要配合他的時間。
有些事情自己無法親自去做,可請他人協助。個人的力量是有限的,要充分利用時間,就要盡量利用別人的力量,讓別人的時間為自己的時間。例如,工人的工作時間都由企業家管理,一個優秀的企業家,無不把這筆時間當做自己的時間而好好利用。
九、一心多用。邊吃飯,邊聽新聞、音樂;邊看電視,邊交談;邊看書,邊交談;邊吃飯,邊交談;邊打乒乓球,邊交談。在刷牙、洗臉、刮鬍子、穿著打扮時,可讓自己放鬆、放鬆。高級人才都有一心多用的願望,長期如此,也就在不知不覺之中形成了習慣,這對於充分利用時間非常有益。�
大多數日本人無法接受無所作為的消遣方式,並把無所事事的消遣看作是痛苦的事情,因此,他們即使是在旅遊、度假,也會安排一些有意義的事情,以達到邊玩、邊學習或邊工作的目的。這樣一時利用的時間資源或許不多,但一代人所爭取的時間資源將很多,代代相傳,對於民族發展將萬分有利。
十、給自己找更多的事情做。沒事做或沒有較多的事情做,是很多人沒有充分利用時間的主要原因。不斷進取,樹立較大的目標,是使自己有更多的事情做的最好辦法。個人的潛力是很大的,而大部分人只用到潛力的很小部分。假如讓自己一天做一件事情,可以度過每一天;如果讓自己一天做兩件事情,也可以度過每一天。如果你讓自己一天做10件事,你也可以想辦法完成它。
十一、利用間斷時間。比如看電視時,人們通常只留意其精彩的內容,因此,通過多換台可以得到更多精彩的內容。邊看電視邊做其它事情,電視內容精彩時,就看一看,反之,就做事。在公文包里放一本好書,有空就拿出來看一看,工作中間沒事時可拿出來看;在飯店裡等吃飯時看一看……
十二、利用零碎時間。利用好零碎時間並不難,但最容易為人們所突視。超級人才與一般人才的區別主要在於他們善於利用零碎時間,盡管一時的區別並不大,但長期積累,差距就產生了。例如坐地鐵、坐火車時,讀份報紙或構思一個文件,或者好好地自我放鬆一下(比如閉目養神)。
在等待的時間里,可考慮發展計劃、讀幾頁書、看看報紙、處理一些瑣事、運動或放鬆一下。比如,帶上一個小問題在吃飯排隊時思考;交給上司遞方案往往要坐著等待他答復,可思考與此方案有關而尚未完成的問題。
一個不善於利用零碎時間的人,不可能成為世界級人才。善於利用瑣碎時間,一時得利或許不大,但長期積累,是非常有益的。難怪高級人才都重視零碎時間,而且都自我磨煉成為利用瑣碎時間的能手?
十三、多考慮現在和未來,少考慮過去的事情,以充分利用時間和精力。回顧過去往往會浪費時間和精力。當然,在處理許多事情時,往往要考慮過去的經驗、教訓,因為過去有些東西可做為現在或以後辦事的參考。
十四、充分利用休息時間。比如,利用吃飯時間、飯後短暫的休息時間、運動後放鬆的時間,和朋友、同事交談,這樣既有利於放鬆心身及消除疲勞,又利於交友。有些領導者常利用吃飯和飯後休息的時間,輪流與下屬、同事交談,這樣既有利於增進與下屬的互相了解,又利於獲得良好的意見和建立良好的團體氣氛,又可減少一些會議和會談,十分有益。
十五、被干擾的時候做些簡單的事情。不速之客來了,可邊應酬邊辦事。對於無關緊要的會議,應想辦法推掉,以免浪費時間。不得已參加這些會議時,可以簡單思考一下某個辦事計劃。
十六、常做記錄。隨身帶一本小冊子,有好的想法就記下來。比如,隨時記錄改進工作、做好某事的好辦法,學習的心得體會等。好的想法不記下來,很容易忘記,即使勉強能回憶起來,也很費時間和精力。一旦形成隨時記錄靈感和心得的習慣,你會發現自己的靈感和心得很多,對於個人的成才、發展都非常有益。難怪多數高級人才都有隨時記錄靈感和心得的習慣。
小的筆記本可放在衣袋或公文包里,大的筆記本通常只能放在公文包里。每個人最好安排幾本筆記本,一本是學慣用的,一本是工作用的,一本放在公文包里,一本放在睡床上,一本放在廁所里,並分別配上筆。這個投資相當小,卻可換來很多方便,避免為找筆記本而浪費時間和精力。
躺在床上時,突然有些靈感,可立刻寫到筆記本。有些人不看筆記本也能寫出基本端正的字句。有些人在寫字時眼睛也不大留意筆記本,以免讓眼睛浪費精力。
許多高手除了擁有筆記本電腦外,還有小巧的快譯通,隨時都可以將心得記錄下來,相比筆記本電腦方便得多。如果要記錄的內容多,用筆記本電腦是比較好的。
根據個人的實際情況,每個人都要制訂一套充分利用時間的方案,並長期認真執行,以逐步形成充分利用時間的習慣。