日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 充電吧
[導讀]高并發(fā)編程里多線程(進程)的弊端其實從著名的 C10K 問題的時候, 就談到了高并發(fā)編程時, 采用多線程(或進程)是一種不可取的解決方案, 核心原因是因為線程(或進程)本質上都是操作系統(tǒng)的資源, 每個

高并發(fā)編程里多線程(進程)的弊端
其實從著名的 C10K 問題的時候, 就談到了高并發(fā)編程時, 采用多線程(或進程)是一種不可取的解決方案, 核心原因是因為線程(或進程)本質上都是操作系統(tǒng)的資源, 每個線程需要額外占用1M或者2M的內存空間, 所以2G內存,能承受的線程數差不多只能到1k這個量級。
而且線程的調度由操作系統(tǒng)調度, 當線程或者進程數到達一定量級的時候, 據有人試驗的結果是并發(fā)的線程數到達1k以上后, 操作系統(tǒng)基本上就已經不堪重負,調度不過來了。
事件驅動
已知多線程已經無法解決高并發(fā)問題, 所以才有了異步IO,事件驅動等概念來解決高并發(fā)編程。 很典型的就是 Node.js ,傳說中的事件驅動, 其實就是在底層使用了 libuv 然后通過各種回調函數來注冊事件, 當事件觸發(fā)的時候回調函數也被觸發(fā)。 使用事件驅動的方式確實能解決高并發(fā)的問題, 但是因為事件驅動最費勁的就是各種喪心病狂不停的回調, 在回調里面再嵌套回調,容易陷入所謂的【回調地獄】。 這也是 Node.js 最受人詬病的地方。
高并發(fā)解決方案之協(xié)程
面向對象最典型的語言是 Java , 事件驅動最典型的語言是 Node.js , 協(xié)程最典型的語言就是 golang , 當然國內程序員響馬的 fibjs 也是基于協(xié)程來進行并發(fā)的, 也非常出色,只不過在生態(tài)上還是發(fā)展的太慢了。 個人看來協(xié)程相對于事件驅動是一種更先進的高并發(fā)解決方案, 把復雜的邏輯和異步都封裝在底層, 讓程序員在編程時感覺不到異步的存在, 用響馬的話就是【用同步抒寫異步情懷】。 個人很看好協(xié)程的發(fā)展, 同時也非??春?golang 的前景,

協(xié)程也叫用戶級線程, 很多人分不清楚協(xié)程和線程和進程的關系。 簡單的說就是: 線程和進程的調度是由操作系統(tǒng)來調控, 而協(xié)程的調度由用戶自己調控。 所以協(xié)程調度器可以在協(xié)程A即將進入阻塞IO操作, 比如 socket 的 read (其實已經設置為異步IO )之前, 將該協(xié)程掛起,把當前的棧信息 StackA 保存下來, 然后切換到協(xié)程B, 等到協(xié)程A的該 IO操作返回時, 再根據 StackA 切回到之前的協(xié)程A當時的狀態(tài)。

小結

協(xié)程誕生解決的是低速IO和高速的CPU的協(xié)調問題,解決這類問題主要有三個有效途徑:

1.異步非阻塞網絡編程(libevent、libev、redis、Nginx、memcached這類)

2.協(xié)程(golang、gevent)

3.“輕量級線程”,相當于是在語言層面做抽象(Erlang)

對比之下協(xié)程的編程難度較低,不要求編程人員要有那么高的抽象思維能力。再加上golang在這方面優(yōu)秀的實踐,協(xié)程目前的前途還是一片光明的。當然還有一點,我們要承認無論你狀態(tài)機、callback設計得多么精妙,現實中阻塞事很難以避免的。

避免了Network IO Blocking,還有數據庫Blocking,
還有Disk IO Blocking,還有數據庫Blocking,還有日志Blocking,還有第三方庫blocking,還有人類自己導致的blocking……協(xié)程是應對這些的不錯的解決方案,當然協(xié)程的接口還是太過晦澀。So,Life is Short,Use Golang。線程還是更適合作為多核計算的不二法門存在的。

原文鏈接:https://studygolang.com/articles/2396

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉