日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wince支持多线程编程吗_以前面试只问多线程,现在都开始问响应式编程了!我懵了...

發布時間:2025/3/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wince支持多线程编程吗_以前面试只问多线程,现在都开始问响应式编程了!我懵了... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以前面試只問多線程,現在都開始問響應式編程了!

看完這篇文章你就能有個大體的了解了。

基本介紹

目前比較流行的編程方法論有函數式編程(functional programming)、響應式編程(reactive programming)等。

函數式編程的代表就是工作流模式,而響應式編程的代表就是reactor模式了。

reactor模式廣泛地用于各種RPC框架,例如linux的epoll,redis,netty,kafka等。

事件驅動編程與多線程編程

多線程編程有如下幾個缺點:

  • 對于共享資源需要使用鎖結構 容易造成死鎖問題
  • 難以Debug
  • 多線程破壞了抽象 無法設計出模塊化的程序
  • 因為鎖導致回調無法完成
  • 想要得到良好的性能很難
  • 線程庫不受支持 很多函數不支持線程安全

事件驅動編程有以下幾個特點:

  • 一個執行流進程: 沒有CPU的并發
  • 在時間上注冊消息(通過回調)
  • 事件輪詢等待消息, 調用處理器模型
  • 時間處理器沒有搶斷
  • 處理器通常是 短生命周期的

兩者相比:

  • 事件驅動編發編程盡可能的避免 并發, 而多線程編程則傾向于并發:
  • 使用事件驅動更加容易調試
  • 在單個CPU上時間驅動程序比線程更加快速
  • 事件驅動編程更加面向接口編程
  • 多線程提供了真正的并發性

Reactor模式就是一種事件驅動編程的模式,也是IO多路復用的基本設計模式。

他有如下幾個特點

  • Reactor模式中會通過分配適當的handler(處理程序)來響應IO事件,類似與AWT 事件處理線程;
  • 每個handler執行非阻塞的操作,類似于AWT ActionListeners 事件監聽
  • 通過將handler綁定到事件進行管理,類似與AWT addActionListener 添加事件監聽;

基本結構如下

  • Handles:句柄,標識OS管理的資源.每個連接由socket句柄表示。
  • Synchronous Event Demultiplexer:同步事件多路復用器,在句柄集合上阻塞等待事件的發生。
  • Initiation Dispatcher:初始分發器,分發事件處理器的接口。
  • Event Handler:事件處理器,指定一個由鉤子方法組成的接口。
  • Concrete Event Handler:具體處理事件的方法

整個流程如下:

  • 我們注冊Concrete Event Handler到Initiation Dispatcher中。
  • Initiation Dispatcher調用每個Event Handler的get_handle接口獲取其綁定的Handle。
  • Initiation Dispatcher調用handle_events開始事件處理循環。在這里,Initiation Dispatcher會將步驟2獲取的所有Handle都收集起來,使用Synchronous Event Demultiplexer來等待這些Handle的事件發生。
  • 當某個(或某幾個)Handle的事件發生時,Synchronous Event Demultiplexer通知Initiation Dispatcher。
  • Initiation Dispatcher根據發生事件的Handle找出所對應的Handler。
  • Initiation Dispatcher調用Handler的handle_event方法處理事件。

下面用一個例子來具體說明Reactor模式的運作:

步驟如下:

  • 日志服務注冊Logging Acceptor 到初始分發器來處理連接請求;
  • 日志服務調用初始分發器的handle_events 方法;
  • 初始分發器調用同步事件多路復用器的select 方法,等待連接請求或者日志數據的達到;
  • 客戶端連接到日志服務器;
  • 初始分發器通知Logging Acceptor 有新連接達到;
  • Logging Acceptor 接受新連接;
  • Logging Acceptor 創建一個Logging Handler 來為新客戶端服務;
  • Logging Handler 將它的socket句柄注冊到初始分發器,并且要求,當socket可讀時,初始分發器通知它;

Reactor線程模型

單線程模型

多線程模型

基于多個反應器的多線程模型

Reactor模式的應用

redis(單線程模型)

Netty(多Reactor線程多Worker線程模型)

Netty的線程模式就是一個實現了Reactor模式的經典模式。

結構對應:

  • NioEventLoop ———— Initiation Dispatcher
  • Synchronous EventDemultiplexer ———— Selector
  • Evnet Handler ———— ChannelHandle
  • rConcreteEventHandler ———— 具體的ChannelHandler的實現

模式對應(Netty服務端使用了“多Reactor多線程模式”)

  • mainReactor ———— bossGroup(NioEventLoopGroup) 中的某個NioEventLoop
  • subReactor ———— workerGroup(NioEventLoopGroup) 中的某個NioEventLoop
  • acceptor ———— ServerBootstrapAcceptor
  • ThreadPool ———— 用戶自定義線程池

Spring5

2年前 Java 9 發布,其中一個重要的特性就是java.util.concurrent.flow包,它規范了reactive編程中異步非阻塞流處理的背壓(back pressure)問題。java8中的stream可以理解為迭代器模式(Iterator)的實現,而reactive可以理解為觀察者模式(Observer)的實現。Iterator模式是服務線程去拉(pull)數據,而Observer模式是數據主動推(push)給服務線程,如果服務線程消費的太慢或者說數據推送的太快 就會引起阻塞情況 這種現象就叫做背壓,java9推出了reactivestream來規范背壓問題的解決方案。在Java 9之后 Spring5也All in了reactive programming,推出spring reactor包。

References

1.John Ousterhout: Why Threads Are A Bad Idea(for most purposes)

2.Douglas C. Schmidt: Reactor An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Synchr

3. Doug Lea: Scalable IO in Java

希望能得到您的 關注、評論、轉發,謝謝!

私信我“資料”,可以免費獲取海量 JAVA技術棧電子書 和 大廠面試題。

總結

以上是生活随笔為你收集整理的wince支持多线程编程吗_以前面试只问多线程,现在都开始问响应式编程了!我懵了...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 白俄罗斯毛片 | 一区二区三区国产av | 污的网站 | 成人福利一区 | 真实人妻互换毛片视频 | 熟妇人妻中文字幕 | 亚洲九九夜夜 | 俺也去在线视频 | 国产aⅴ无码片毛片一级一区2 | 亚洲天堂伊人 | 亚洲清色 | 日韩网站免费观看高清 | 夜夜涩 | 中文字幕一区二区三区四区不卡 | 中文字幕 人妻熟女 | 超碰成人97 | 欧美精品黑人 | 欧美巨大荫蒂茸毛毛人妖 | 国产98色在线 | 日韩 | 亚洲资源在线播放 | 日韩一区二区三免费高清在线观看 | 51久久| 亚洲最大看欧美片网站 | 国产精品入口麻豆 | 久久逼逼 | 麻豆视频一区 | 人人爱av| 成年人视频在线观看免费 | 久久久久女教师免费一区 | 色小说综合 | 成人免费毛片观看 | 在线播放你懂得 | 成人精品综合 | 91成人短视频 | 日本一区二区不卡在线观看 | 91av福利视频 | 日韩av中文字幕在线播放 | 人人cao | 中文字幕第一区 | 国产乱淫av麻豆国产免费 | 日韩精品一区二区三区 | 日韩中文字幕免费在线观看 | 久久久久久久久久91 | 欧美日韩国产传媒 | 超污视频软件 | 亚洲激情视频在线 | 日韩国产综合 | 成人午夜福利视频 | 亚洲性xxxx| 婷婷在线免费 | 亚洲蜜桃av | 欧美国产视频一区 | 国产剧情av麻豆香蕉精品 | 一本大道伊人av久久综合 | 日本一级片免费看 | 成人免费在线网站 | 91久久精品日日躁夜夜躁欧美 | 午夜两性视频 | 国产午夜伦理 | 97se亚洲 | 国内一级黄色片 | 主人性调教le百合sm | 国产激情小视频 | 精品成人在线 | 操女人视频网站 | 男女草逼视频 | 歪歪视频在线观看 | 亚洲最新视频 | 久久精品国产99精品国产亚洲性色 | 天天尻逼 | 久久久久中文字幕 | 美女伊人网 | 蜜臀久久99静品久久久久久 | 尤物在线免费观看 | 亚洲熟妇无码乱子av电影 | 男女性高潮免费网站 | 亚洲蜜桃精久久久久久久久久久久 | 浪浪视频污 | 久久涩视频 | 午夜精品剧场 | 啪啪短视频 | 日本在线看 | 久青草视频 | 中文字幕精品久久久久人妻红杏ⅰ | 国产黄色大全 | 久久久欧美 | 亚洲精品一区二区潘金莲 | 天堂资源地址在线 | 精品欧美一区二区在线观看 | 免费午夜激情 | 欧美一级专区 | 伊人久久久| 日本国产一区二区 | 大乳巨大乳j奶hd | 一本无码aⅴ久久久国产 | 亚洲精品视频久久久 | 自拍三区 | 91涩漫成人官网入口 | 日韩av手机在线免费观看 |