java併發程式設計 並行和併發(1)

2021-09-13 16:31:30 字數 746 閱讀 3993

1.為什麼需要並行?

效能 :

在多核cpu提高效能
業務需求 :

平行計算還出於業務模型的需要

– 並不是為了提高系統效能,而是確實在業務上需要多個執行單元。

– 比如http伺服器,為每乙個socket連線新建乙個處理執行緒

– 讓不同執行緒承擔不同的業務工作

– 簡化任務排程

2.概念

 同步(synchronous)和非同步(asynchronous) 【對於方法 而言】

等待  方法返回

返回很快 並不是呼叫完成,後台起乙個執行緒處理這個事情,不影響做下面的事情

 併發(concurrency)和並行(parallelism) 【外在表象來看是一樣的】

併發和並行都可以是很多個執行緒,就看這些執行緒能不能同時被(多個)cpu執行,如果可以就說明是並行,而併發是多        個執行緒被(乙個)cpu 輪流切換著執行。
 臨界區

臨界區用來表示一種公共資源或者說是共享資料,可以被多個執行緒使用。但是每一次,只能有乙個執行緒
使用它,一旦臨界區資源被占用,其他執行緒要想使用這個資源,就必須等待。

34 併發程式設計 併發並行

一 併發 無論是並行還是併發,在使用者看來都是 同時 執行的,不管是程序還是執行緒,都只是乙個任務而已,真是幹活的是cpu,cpu來做這些任務,而乙個cpu同一時刻只能執行乙個任務。併發 是偽並行,即看起來是同時執行。單個cpu 多道技術就可以實現併發,並行也屬於併發 二 並行 並行 並行 同時執行...

併發程式設計 2 程序 併發和並行講解

概要 程序併發和並行 同步 非同步 阻塞 非阻塞 程序的建立 結束與併發的實現 一.程序講解 程序 process 是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體 在當代面向執行緒設...

JAVA併發1 併發程式設計的挑戰

乙個cpu同一時刻只能執行乙個執行緒 cpu 通過給每個執行緒分配一定的時間片,時間片非常短,通常是幾十毫秒,來不停的切換執行緒執行任務,達到了多執行緒的效果。當執行緒用完自己的時間片後,及時任務還沒有完成,作業系統也會剝奪它的執行權,讓另一條執行緒執行。當一條執行緒的時間片用完後,作業系統會暫停該...