網路與多執行緒的設計例子

2022-01-15 10:23:56 字數 666 閱讀 3767

該庫使用了qt的工程方式進行封裝(實在不想寫configure),裡面的log也使用了log4qt的方式進行,如果不想使用qtcreator的話,可以自行引用

tcpserver資料夾裡面的所有檔案即可。

使用qtcreator的好處是,裡面的demo是用qt寫的,當然qt就是c++,應該不難看懂。

該庫的實質原始碼其實並不多,使用者只需要繼承

abstracttcphandler類來實現自己的服務功能,然後用該例項化的子類、監聽埠號、執行緒數去初始化epolltcpserver物件

即可。abstracttcphandler類的每個介面函式的功能,可看該類標頭檔案的注釋。

例項化自己的功能類時,需要注意的是,當你初始化

epolltcpserver物件時指定的執行緒數大於1時,

該類會被多個執行緒同時呼叫,所以,設計該類時,需要保證裡面的資源的執行緒安全。

當初始化完

epolltcpserver物件後,呼叫其startserver()介面裡,將會正式啟動執行緒進行網路監聽操作,並將監聽到的tcp連線放入epoll中做事件監聽,當有事件到來時,呼叫你例項化的功能類進行資料的處理,如下圖所示。

來自為知筆記(wiz)

網路與多執行緒的設計例子

該庫使用了qt的工程方式進行封裝 實在不想寫configure 裡面的log也使用了log4qt的方式進行,如果不想使用qtcreator的話,可以自行引用tcpserver資料夾裡面的所有檔案即可。使用qtcreator的好處是,裡面的demo是用qt寫的,當然qt就是c 應該不難看懂。該庫的實質...

網路與多執行緒的設計例子

該庫使用了qt的工程方式進行封裝 實在不想寫configure 裡面的log也使用了log4qt的方式進行,如果不想使用qtcreator的話,可以自行引用tcpserver資料夾裡面的所有檔案即可。使用qtcreator的好處是,裡面的demo是用qt寫的,當然qt就是c 應該不難看懂。該庫的實質...

多執行緒例子

coding utf 8 import threading import queue import time import random from faker import faker class mythread threading.thread 執行緒模型 def init self,queue...