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

2022-06-28 23:12:15 字數 610 閱讀 7957

該庫使用了qt的工程方式進行封裝(實在不想寫configure),裡面的log也使用了log4qt的方式進行,如果不想使用qtcreator的話,可以自行引用tcpserver資料夾裡面的所有檔案即可。

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

該庫的實質原始碼其實並不多,使用者只需要繼承abstracttcphandler類來實現自己的服務功能,然後用該例項化的子類、監聽埠號、執行緒數去初始化epolltcpserver物件即可。

abstracttcphandler類的每個介面函式的功能,可看該類標頭檔案的注釋。例項化自己的功能類時,需要注意的是,當你初始化epolltcpserver物件時指定的執行緒數大於1時,該類會被多個執行緒同時呼叫,所以,設計該類時,需要保證裡面的資源的執行緒安全。

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

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

該庫使用了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...