C++鎖網絡相關-創新互聯

鎖 成對出現 互斥量需要在上鎖期間操作?鎖的目的是為了鎖住臨界空間,所以肯定是會有多個線程去臨界空間的對吧;

創新互聯是一家專業提供土默特右旗企業網站建設,專注與成都網站制作、成都網站建設、外貿營銷網站建設、H5技術、小程序制作等業務。10年已為土默特右旗眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

std::mutex:最基本的互斥量,調用線程發生3種情況:成功上鎖,阻塞(該鎖被其他線程使用),死鎖(反復上鎖)

std::lock_guard && unique_lock:RAII相關;前者在其生命周期內自動上解鎖,初始化時即上鎖;

std::atomic:原子數據類型,不需要加鎖,就能實現原子操作,只有部分數據類型可用;

cond(配合std::unique_lock使用)作為全局變量,在哪個線程里調用wait就在阻塞哪個線程(此時線程是處于獲得鎖的情況的),他被阻塞的時候會釋放鎖,讓其他線程去執行,被喚醒時又會重新獲得鎖;只喚醒一個線程和喚醒所有線程是不一樣的,所有線程都被喚醒后,會去競爭鎖,與notify_one不同,他們不會再阻塞,會不斷去嘗試獲得鎖;

可以喚醒所有線程可能是它和sem的關鍵區別;sem會記錄一個值,而cond沒有;
sem_t;sem_init;sem_wait;sem_post;它和cond的區別是什么???
sem可能是由mutex + counter + condition variable實現的;
信號量可以解決條件變量中存在的喚醒丟失問題。因為信號量有一個狀態,如果想精準的同步,那么信號量可能會有特殊的地方。
信號量最有用的場景是用以指明可用資源的數量。將連接數量作為信號量;

std::thread:形參為函數名,執行相應的函數,第二個參數為相應函數的參數;

shared_ptr:<>里面指明指向的數據類型;自動銷毀引用計數為0的對象;

socket()
輸入參數:IPV4 or 6(AF_INET);TCP or UDP(SOCK_STREAM);0(自動填充);
返回文件描述符;
bind()
用于服務器端;旨在綁定套接字和自己的IP地址和端口;
輸入參數:socket()返回的文件描述符;const struct sockaddr *指針,由于兼容性的原因,這里我們只能先使用sockaddr_in 結構體來定義相應的IP地址和端口號,然后再強制轉換為 sockaddr 類型的方式。
返回值:0代表成功,-1代表失敗;
connect()
用于客戶端;旨在連接套接字和服務器端的IP地址和端口;
返回值:0代表成功,-1代表失??;

服務器端先listen再accept;
listen():非阻塞
輸入參數:socket返回的文件描述符;能接收多少個客戶端請求;
返回值:0,-1
accept():阻塞;
輸入參數:只不過這里的sockaddr_in并不需要具體的給出,另外最后的長度參數也是通過指針的方式傳進去的。
返回一個新的文件描述符,后續具體的通信都使用這個文件描述符進行數據的傳輸;
read()&&write()
為對應的文件描述符(服務器端為accept建立的,客戶端為socket建立的)。
_buf:只能是字符串的形式;
close():關閉相應的文件描述符;
0,-1
initsocket中涉及復用和優雅關閉的問題;setsockopt()
應該是和優雅關閉相關的;

sockaddr_in
IP地址:htonl(INADDR_ANY)或者inet_addr()
端口號:htons(port_)
socklen_t

epoll事件:
處理監聽;listenFd_獲取的文件描述符如果和這個相等則處理監聽
epollrdhup(0x2000),epollhup(0x010),epollerr(0x008),關閉連接
epollin:處理讀,0x001;表示對應的文件描述符可讀;
epollout:處理寫,0x004;

初始化了一些線程并將他們全都detach;
Listen Mode;OpenConn Mode;分別是什么含義?

epoll_create()
輸入參數:size表示內核要監聽的描述符數量;
返回值:文件句柄,-1
epoll_ctl():注冊要監聽的事件類型;
輸入參數:epoll句柄;增加,修改,刪除;要監聽的描述符;要監聽的事件(這是另一個簡單的結構體);
返回值:0,-1
epoll_wait():等待事件就緒,成功時返回就緒事件的數目;
輸入參數:epoll句柄;從內核得到的就緒事件集合;告訴內核events的大?。坏却瑫r時間
返回值:0,-1
服務器端listen—>epoll_wait—>accept;
底下case部分的監聽部分有點看不懂,為什么要做這樣一個判斷呢?還有循環判斷的終止索引應該是啥?

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

新聞名稱:C++鎖網絡相關-創新互聯
鏈接地址:http://m.kartarina.com/article30/ccgipo.html

成都網站建設公司_創新互聯,為您提供移動網站建設、標簽優化、面包屑導航、虛擬主機網站內鏈定制開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計
主站蜘蛛池模板: 亚洲AV无码久久久久网站蜜桃| 在线观看无码的免费网站| 高h纯肉无码视频在线观看| 亚洲韩国精品无码一区二区三区 | 特级无码a级毛片特黄| 国产成人无码AV一区二区在线观看| 日韩网红少妇无码视频香港| 黑人无码精品又粗又大又长| 免费A级毛片无码A∨免费| 国产日韩AV免费无码一区二区三区| 少妇人妻偷人精品无码视频 | 国产精品无码一区二区三区免费| 永久免费AV无码网站国产| 亚洲精品无码专区在线播放| 国产成人AV片无码免费| 特级无码a级毛片特黄| 久久亚洲中文字幕无码| 亚洲看片无码在线视频| 欧洲Av无码放荡人妇网站| 亚洲人成影院在线无码按摩店| 在线精品免费视频无码的| 狠狠精品干练久久久无码中文字幕 | 日韩精品无码免费专区午夜不卡 | 亚洲av永久无码| 久久久久久国产精品免费无码| 亚洲精品无码高潮喷水在线| 国产成人亚洲综合无码| 久久精品无码一区二区三区日韩| 日韩精品成人无码专区免费| 无码人妻丰满熟妇啪啪网站| 无码日韩人妻精品久久蜜桃| 无码人妻少妇色欲AV一区二区| 亚洲精品无码av人在线观看| 日韩精品无码免费专区网站| 中文无码喷潮在线播放| 中文字幕无码一区二区免费| 国产精品无码素人福利| 国产成人无码区免费网站| 亚洲精品无码AV人在线播放| 亚洲AV无码国产在丝袜线观看| 亚洲成A人片在线观看无码不卡|