goyas

2019年12月1日

enable_shared_from_this用法分析

摘要:一、背景 在 "為什么需要異步編程" 文章末尾提到,"為了使socket和緩沖區(read或write)在整個異步操作的生命周期一直保持活動,我們需要采取特殊的保護措施。你的連接類需要繼承自enabled_shared_from_this,然后在內部保存它需要的緩沖區,而且每次異步調用都要傳遞一個智 閱讀全文

posted @ 2019-12-01 19:17 goyas 閱讀 (62) 評論 (0) 編輯

2019年11月30日

為什么需要異步編程

摘要:一、背景 在 "Reactor和Proactor模型" 一文中講到,Reactor模型提供了一個比較理想的I/O編程框架,讓程序更有結構,用戶使用起來更加方便,比裸API調用開發效率要高。另外一方面,如果希望每個事件通知之后,做的事情能有機會被代理到某個線程里面去單獨運行,而線程完成的狀態又能通知回 閱讀全文

posted @ 2019-11-30 17:13 goyas 閱讀 (148) 評論 (0) 編輯

Reactor和Proactor模型

摘要:一、背景 前面介紹了I/O多路復用模型,那有了I/O復用,有了epoll已經可以使服務器并發幾十萬連接的同時,還能維持比較高的TPS,難道還不夠嗎?比如現在在使用epoll的時候一般都是起個任務,不斷的去巡檢事件,然后通知處理,而比較理想的方式是最好能以一種回調的機制,提供一個編程框架,讓程序更有結 閱讀全文

posted @ 2019-11-30 10:28 goyas 閱讀 (144) 評論 (1) 編輯

2019年11月25日

epoll介紹及使用

摘要:小程序功能:簡單的父子進程之間的通訊,子進程負責每隔1s不斷發送"message"給父進程,不需要跑多個應用實例,不需要用戶輸入。 首先上代碼 #include<assert.h> #include<signal.h> #include<stdio.h> #include<sys/epoll.h> 閱讀全文

posted @ 2019-11-25 09:36 goyas 閱讀 (27) 評論 (0) 編輯

2019年11月24日

I/O多路復用模型

摘要:背景 在文章《unix網絡編程》(12)五種I/O模型中提到了五種I/O模型,其中前四種:阻塞模型、非阻塞模型、信號驅動模型、I/O復用模型都是同步模型;還有一種是異步模型。 想寫一個系列的文章,介紹從I/O多路復用到異步編程和RPC框架,整個演進過程,這一系列可能包括: I/O多路復用模型 epo 閱讀全文

posted @ 2019-11-24 17:44 goyas 閱讀 (154) 評論 (0) 編輯

2019年11月4日

深度學習分布式模型

摘要:背景 隨著各大企業和研究機構在PyTorch、TensorFlow、Keras、MXNet等深度學習框架上面訓練模型越來越多,項目的數據和計算能力需求急劇增加。在大部分的情況下,模型是可以在單個或多個GPU平臺的服務器上運行的,但隨著數據集的增加和訓練時間的增長,有些訓練需要耗費數天甚至數周的時間, 閱讀全文

posted @ 2019-11-04 09:12 goyas 閱讀 (251) 評論 (0) 編輯

2019年10月12日

一個極簡的分布式文件系統

摘要:前言 開源的分布式存儲系統比較多,比較有名的有:Ceph、GlusterFS、HDFS、TFS等。這些系統都比較復雜,代碼動則幾十上百萬行,這些系統對初學者來說門檻比較高,特別是對于從事非分布式存儲行業,但又想跨行學習分布式的同學來說,往往有這想法,但是不知道怎么入手。本文介紹之前實現的一個C++極 閱讀全文

posted @ 2019-10-12 11:08 goyas 閱讀 (259) 評論 (0) 編輯

一個基于protobuf的極簡RPC

摘要:前言 RPC采用客戶機/服務器模式實現兩個進程之間的相互通信,socket是RPC經常采用的通信手段之一。當然,除了socket,RPC還有其他的通信方法:RDMA、http、管道…… 網絡開源的RPC框架也比較多,一個功能比較完善的RPC框架代碼比較多,如何快速的從這些代碼盲海中梳理清楚主要脈絡, 閱讀全文

posted @ 2019-10-12 10:39 goyas 閱讀 (407) 評論 (0) 編輯

導航

統計

ag二分彩