偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

『單』線程能實現(xiàn)『并發(fā)』嗎?

開發(fā) 前端
看到有人在也是回答“能”的情況下,說單線程實現(xiàn)的并發(fā)是“偽并發(fā)”,個人覺得這種說法是有問題的。并發(fā)就是并發(fā),并不存在所謂“偽并發(fā)”。我大概也能猜到提出“偽并發(fā)”概念的人的意思,他認為的“真并發(fā)”其實是“并行”,其認為無法實現(xiàn)并行的并發(fā)就是“偽并發(fā)”。

多線程可以實現(xiàn)并發(fā)是毋庸置疑的,但是單線程是否能實現(xiàn)并發(fā)呢?

這就像我們知道多個人肯定可以同時做多件事,然后有人問一個人可以同時做多件事嗎?答案當然也是可以。比如很多人就經(jīng)常邊吃飯邊玩手機,在工作中一個人也經(jīng)常被上級同時安排大大小小多個任務。線程也是同理,所以單線程可以實現(xiàn)并發(fā)。

看到有人在也是回答“能”的情況下,說單線程實現(xiàn)的并發(fā)是“偽并發(fā)”,個人覺得這種說法是有問題的。并發(fā)就是并發(fā),并不存在所謂“偽并發(fā)”。我大概也能猜到提出“偽并發(fā)”概念的人的意思,他認為的“真并發(fā)”其實是“并行”,其認為無法實現(xiàn)并行的并發(fā)就是“偽并發(fā)”。

但是,在弄清楚“并發(fā)”和“并行”兩個概念后,就會發(fā)現(xiàn)所謂“偽并發(fā)”是個多余、甚至會加重誤解的概念。并發(fā)說的是可以同時進行多個任務,但是它并不承諾這多個任務是“絕對的同時”開始,也不承諾多個任務是“絕對的同時”進行,而實現(xiàn)了后兩者的情況則被稱為“并行”。

即并發(fā)不一定并行,但是并行一定是并發(fā)。

在談論并發(fā)時所說的“同時”的“時”是個相對的、可變的“時間刻度”。兩件事是否算并發(fā),隨著這個“時間刻度”的變化也會發(fā)生變化。比如前文說很多人經(jīng)常邊吃飯邊玩手機是并發(fā),較真的人可能就會不同意,覺得兩件事明明只能先后進行,原因就在于我和他在談論并發(fā)時的“時間刻度”沒統(tǒng)一。

假設(shè)某人吃飯大概10分鐘時間,于是將10分鐘視為一個不可分割的時間單位,如果在這個時間單位內(nèi)還可以做其他事,就是實現(xiàn)了并發(fā)。但另一個人覺得并發(fā)的“時間刻度”最多為1秒,而1秒時間內(nèi)顯然不能邊吃飯邊做其他事,于是他認為并發(fā)不成立。其實兩種說法都沒問題,只是并發(fā)的尺度不同。

并發(fā)是個應用場景遠大于并行,且在具體表現(xiàn)上可以非常靈活的執(zhí)行機制。比如計算機領(lǐng)域的單核處理器可以做多并發(fā),一個人做事也可以是多并發(fā),工廠里如同隊列執(zhí)行的單條流水線,其本質(zhì)也是大并發(fā)。相比于并行,并發(fā)在理論上更先進,在實現(xiàn)上卻更簡單。

對并發(fā)的靈活應用,讓福特汽車在1913年就架設(shè)了自己的生產(chǎn)流水線,然后將汽車裝配速度一下子提高了8倍,創(chuàng)造了駭人的每10秒就有一臺T型車下線的記錄。

重新回到計算機技術(shù)上來,我們知道JavaScript是典型的單線程腳本語言,可是基于JavaScript的NodeJS的最大優(yōu)勢之一卻是“超強的高并發(fā)能力”。

也就是單線程不但可以實現(xiàn)并發(fā),在實際應用中還是被用來實現(xiàn)“高并發(fā)”的利器,因為它可以同時結(jié)合單線程對服務器資源的低要求和“異步”任務互不影響導致的事實上的“并發(fā)”這兩個優(yōu)勢。

責任編輯:武曉燕 來源: Web學社
相關(guān)推薦

2017-06-02 09:10:15

架構(gòu)等效性系統(tǒng)

2020-10-30 16:20:38

Redis單線程高并發(fā)

2024-11-26 07:29:57

高并發(fā)線程安全

2017-10-23 14:03:12

個人信息信息安全快遞單

2024-12-31 11:40:05

2019-11-25 10:13:52

Redis單線程I

2021-03-15 07:02:02

java線程安全

2020-12-28 10:25:50

5G4G網(wǎng)絡

2023-10-29 17:08:38

AQS線程

2025-02-17 00:00:25

Java并發(fā)編程

2019-04-12 15:14:44

Python線程

2025-02-19 00:05:18

Java并發(fā)編程

2020-09-04 10:29:47

Java線程池并發(fā)

2023-01-07 17:41:36

線程池并發(fā)

2011-12-29 13:31:15

Java

2023-10-18 09:27:58

Java編程

2022-03-21 12:45:28

Java線程代碼

2009-11-18 15:14:06

PHP線程

2018-12-20 09:30:59

分布式高并發(fā)多線程

2011-12-08 13:23:00

JavaNIO
點贊
收藏

51CTO技術(shù)棧公眾號