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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ThreadPoolExecutor源码学习(2)-- 在thrift中的应用

發(fā)布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ThreadPoolExecutor源码学习(2)-- 在thrift中的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

thrift作為一個從底到上除去業(yè)務邏輯代碼,可以生成多種語言客戶端以及服務器代碼,涵蓋了網(wǎng)絡,IO,進程,線程管理的框架,著實龐大,不過它層次清晰,4層每層解決不同的問題,可以按需取用,相當方便。

+-------------------------------------------+ | Server | -- 服務器進程調度 | (single-threaded, event-driven etc) | +-------------------------------------------+ | Processor | -- RPC接口處理函數(shù)分發(fā),IDL定義接口的實現(xiàn)將掛接到這里面 | (compiler generated) | +-------------------------------------------+ | Protocol | -- 協(xié)議 | (JSON, compact etc) | +-------------------------------------------+ | Transport | -- 網(wǎng)絡傳輸 | (raw TCP, HTTP etc) | +-------------------------------------------+

其實對于服務端編程的技術大牛來說,服務器調度可能最能體現(xiàn)個人技術功底,但是從傳輸層,到序列化這層的工作,確實是比較繁瑣工作,可以直接利用thrift生成的代碼來完成問題。

以上為題外話,在thrift的java代碼實現(xiàn)Server這一層有個TThreadPoolServer,里面對于線程管理就是使用ThreadPoolExecutor,下面貼下核心代碼

public void serve() {try {serverTransport_.listen();} catch (TTransportException ttx) {LOGGER.error("Error occurred during listening.", ttx);return;}stopped_ = false;while (!stopped_) {int failureCount = 0;try {TTransport client = serverTransport_.accept();WorkerProcess wp = new WorkerProcess(client);executorService_.execute(wp);//這個就是ThreadPoolExecutor} catch (TTransportException ttx) {if (!stopped_) {++failureCount;LOGGER.warn("Transport error occurred during acceptance of message.", ttx);}}}executorService_.shutdown();// Loop until awaitTermination finally does return without a interrupted// exception. If we don't do this, then we'll shut down prematurely. We want// to let the executorService clear it's task queue, closing client sockets// appropriately.long timeoutMS = options_.stopTimeoutUnit.toMillis(options_.stopTimeoutVal);long now = System.currentTimeMillis();while (timeoutMS >= 0) {try {executorService_.awaitTermination(timeoutMS, TimeUnit.MILLISECONDS);break;} catch (InterruptedException ix) {long newnow = System.currentTimeMillis();timeoutMS -= (newnow - now);now = newnow;}}}

值得注意的是在執(zhí)行完所有任務的時候,需要調用shutdown()方法,這個在網(wǎng)上的很多例子都有,但是對于最后一段作者反復檢查狀態(tài)再退出,這個著實沒有必要的,在shutdown()方法中就有類似的代碼了(jdk1.7);再者java并不會在主線程退出的情況下會對其他線程造成影響,所以這段代碼更顯多余:-D

轉載于:https://www.cnblogs.com/elvinni/p/4162982.html

總結

以上是生活随笔為你收集整理的ThreadPoolExecutor源码学习(2)-- 在thrift中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕二区 | 亚洲尤物视频 | 午夜网站在线 | 免费一级a毛片 | 成人激情电影在线观看 | 91精品专区| 色眯眯av | 久久国语精品 | 色丁香婷婷| 国产一区二区三区在线观看视频 | 91激情网 | 女女同性被吸乳羞羞 | 草草视频在线播放 | 国产高清成人久久 | 欧美日韩国产精品一区二区三区 | 老公吃小头头视频免费观看 | 国产乱子伦精品视频 | 午夜激情在线播放 | yw视频在线观看 | 国产精品videos | 一区二区三区视频免费观看 | 精品国产青草久久久久96 | 国产情侣露脸自拍 | 黄色一级大片在线免费看国产一 | 久久看视频 | 岛国裸体写真hd在线 | 黄页嫩草 | 欧美野外猛男的大粗鳮 | 久久亚洲av午夜福利精品一区 | 欧美大尺度做爰啪啪床戏明星 | 亚洲美女视频一区 | 国产三级国产精品国产专区50 | 国产天堂在线 | 区一区二视频 | 小早川怜子一区二区三区 | 91黄色看片| 亚洲免费视频大全 | 欧美mv日韩mv国产网站 | aa视频在线观看 | 波多野结衣视频免费在线观看 | 51成人 | 久久久精品免费看 | 精品人妻久久久久久888不卡 | av在线短片 | 这里只有精品6 | 日本91网站| 给我看免费高清在线观看 | 国产二区自拍 | 波多野结衣www | 女人久久久 | 9色在线 | 欧美一区二区久久久 | 国产免费无遮挡 | 国产高清在线观看视频 | 亚洲欧美成人一区 | 中文字幕在线播放一区二区 | 免费国偷自产拍精品视频 | 三级少妇| 黄色片aaaa| 黄色在线播放 | 女性私密整形视频 | 欧美日韩免费在线视频 | 夜夜爽av福利精品导航 | 精品蜜桃av | 蜜臀久久99精品久久久 | www婷婷 | 亚洲精品天天 | 国产精品自产拍 | 538在线精品视频 | 欧美视频久久 | 国产五月天婷婷 | 国产尤物av | 国内精品久久久久久久 | 尤物精品视频在线观看 | av中文字幕网址 | 精品久久久无码中文字幕边打电话 | 欧美日韩123 | 高清av网 | 可以免费看的毛片 | 天天伊人网 | 91视频免费观看网站 | av日韩不卡 | 999综合网| 亚洲a级精品 | 日韩免费av一区二区 | 久久久久亚洲国产 | 欧美a√在线 | 久久久99久久 | 热久久国产精品 | 亚洲福利一区二区三区 | 成a人片亚洲日本久久 | 蜜桃臀aⅴ精品一区二区三区 | 美女屁股眼视频免费 | 免费拍拍拍网站 | 伊人久久成人网 | 欧美黄色a级片 | 日韩成人午夜 | 国产无套免费网站69 | 欧美自拍偷拍第一页 |