1.為什麼需要並行?
效能 :
在多核cpu提高效能
業務需求 :
2.概念平行計算還出於業務模型的需要
– 並不是為了提高系統效能,而是確實在業務上需要多個執行單元。
– 比如http伺服器,為每乙個socket連線新建乙個處理執行緒
– 讓不同執行緒承擔不同的業務工作
– 簡化任務排程
同步(synchronous)和非同步(asynchronous) 【對於方法 而言】
併發(concurrency)和並行(parallelism) 【外在表象來看是一樣的】等待 方法返回
返回很快 並不是呼叫完成,後台起乙個執行緒處理這個事情,不影響做下面的事情
併發和並行都可以是很多個執行緒,就看這些執行緒能不能同時被(多個)cpu執行,如果可以就說明是並行,而併發是多 個執行緒被(乙個)cpu 輪流切換著執行。
臨界區
臨界區用來表示一種公共資源或者說是共享資料,可以被多個執行緒使用。但是每一次,只能有乙個執行緒
使用它,一旦臨界區資源被占用,其他執行緒要想使用這個資源,就必須等待。 34 併發程式設計 併發並行
一 併發 無論是並行還是併發,在使用者看來都是 同時 執行的,不管是程序還是執行緒,都只是乙個任務而已,真是幹活的是cpu,cpu來做這些任務,而乙個cpu同一時刻只能執行乙個任務。併發 是偽並行,即看起來是同時執行。單個cpu 多道技術就可以實現併發,並行也屬於併發 二 並行 並行 並行 同時執行...
併發程式設計 2 程序 併發和並行講解
概要 程序併發和並行 同步 非同步 阻塞 非阻塞 程序的建立 結束與併發的實現 一.程序講解 程序 process 是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體 在當代面向執行緒設...
JAVA併發1 併發程式設計的挑戰
乙個cpu同一時刻只能執行乙個執行緒 cpu 通過給每個執行緒分配一定的時間片,時間片非常短,通常是幾十毫秒,來不停的切換執行緒執行任務,達到了多執行緒的效果。當執行緒用完自己的時間片後,及時任務還沒有完成,作業系統也會剝奪它的執行權,讓另一條執行緒執行。當一條執行緒的時間片用完後,作業系統會暫停該...