java怎么實(shí)現(xiàn)并行 java中并行與并發(fā)的區(qū)別?
java中并行與并發(fā)的區(qū)別?并發(fā):一個(gè)處理器同時(shí)處理多個(gè)任務(wù)。并行:多個(gè)處理器或者是多核的處理器同時(shí)處理多個(gè)不同的任務(wù).前者是邏輯上的同時(shí)發(fā)生(simultaneous),而后者是物理上的同時(shí)發(fā)生.并
java中并行與并發(fā)的區(qū)別?
- 并發(fā):一個(gè)處理器同時(shí)處理多個(gè)任務(wù)。
- 并行:多個(gè)處理器或者是多核的處理器同時(shí)處理多個(gè)不同的任務(wù).
前者是邏輯上的同時(shí)發(fā)生(simultaneous),而后者是物理上的同時(shí)發(fā)生.
- 并發(fā)性(concurrency),又稱(chēng)共行性,是指能處理多個(gè)同時(shí)性活動(dòng)的能力,并發(fā)事件之間不一定要同一時(shí)刻發(fā)生。
- 并行(parallelism)是指同時(shí)發(fā)生的兩個(gè)并發(fā)事件,具有并發(fā)的含義,而并發(fā)則不一定并行。
來(lái)個(gè)比喻:并發(fā)和并行的區(qū)別就是一個(gè)人同時(shí)吃三個(gè)饅頭和三個(gè)人同時(shí)吃三個(gè)饅頭。
下圖反映了一個(gè)包含8個(gè)操作的任務(wù)在一個(gè)有兩核心的CPU中創(chuàng)建四個(gè)線程運(yùn)行的情況。假設(shè)每個(gè)核心有兩個(gè)線程,那么每個(gè)CPU中兩個(gè)線程會(huì)交替并發(fā),兩個(gè)CPU之間的操作會(huì)并行運(yùn)算。單就一個(gè)CPU而言兩個(gè)線程可以解決線程阻塞造成的不流暢問(wèn)題,其本身運(yùn)行效率并沒(méi)有提高,多CPU的并行運(yùn)算才真正解決了運(yùn)行效率問(wèn)題,這也正是并發(fā)和并行的區(qū)別。