併發 並行傻傻分不清楚?執行緒的一生都經歷些什麼?

2021-09-11 12:56:35 字數 1108 閱讀 2302

今天,我們來解決乙個問題:

併發、並行傻傻分不清楚?執行緒的一生都經歷些什麼?

人生一切難題,知識給你答案。

==併發與並行==

併發是指在某個時間段內,多工交替處理的能力。並行是指同時處理多工的能力。

案例:商場銷售員需要面對多位顧客時,有的顧客問**,有的顧客問質量,這時銷售員需要不斷的回答顧客,中間不停的切換話題並記住之前的話題,方便回過頭回答,這種方式可以理解為併發,如果有多位銷售員對應多位顧客,多位銷售員同時回答顧客問題,這種方式就是並行。

==執行緒的生命週期==

執行緒是cpu排程和分配的基本單位。執行緒可以擁有自己的操作棧、程式計數器、區域性變數表等資源,它與同一程序內的其他執行緒共享該程序的所有資源。

執行緒的建立有三種方式,第一種是繼承自thread類,如下所示:

public

class

handlerthread

extends

thread

}複製**

第二種方式是實現runnable介面,如下所示:

public

class

handlerthread

implements

runnable

}複製**

推薦使用第二種方式,因為繼承thread類不符合黎克特制替換原則,實現runnable介面可以使程式設計更加靈活,對外暴露的細節比較少。

第三種方式使用callable介面,如下所示:

public

class

demo

implements

callable

@override

public string call

()throws exception

}複製**

callable和future介面的區別在於:

執行緒的生命週期有五種狀態,如下圖:

執行緒的生命週期的狀態有:新建狀態、就緒狀態、執行狀態、阻塞狀態以及終止狀態。

併發 並行傻傻分不清楚?

今天,我們正在解決乙個問題 同時的,同時的愚蠢的困惑?執行緒在其生命週期中經歷了什麼?知識給你解答生活中所有困難的問題。concurrent和parallel 併發是指在一定時間內,多工交替處理的能力。並行性是指同時處理多個任務的能力。案例 當乙個商場的銷售員需要面對許多顧客時,有些顧客要求 有些顧...

MVP, MVC, MVVM, 傻傻分不清楚

最近 mvc model view controller 和 mvvm model view viewmodel 在微軟圈成為顯學,asp.net mvc 和 wpf 的 prism mvvm framework 功不可沒,mvc 和 mvvm 在概念上都是基於分層的,將呈現 presentatio...

物件,陣列,傻傻分不清楚

有段時間寫 總將物件和陣列區分不開,當然,可能是我的基礎不太紮實吧,今天將單獨將物件和陣列拿出來溜溜。首先來說一下物件,作為乙個沒有物件的人,這時候就需要用js來自己new乙個物件了 1.物件 object 什麼是物件?物件是一種引用型別,物件的值就是引用型別的例項。建立物件的方法?1 new乙個物...