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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

线程 sleep 取消_C/C++ 多线程机制

發布時間:2024/7/19 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线程 sleep 取消_C/C++ 多线程机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、C/C++多線程操作說明

C/C++多線程基本操作如下:

1. 線程的建立結束

2. 線程的互斥和同步

3. 使用信號量控制線程

4. 線程的基本屬性配置

在C/C++代碼編寫時,使用多線程機制,首先需要做的事情就是聲明引用,具體如下:

#include

二、線程基本操作方法

基本線程操作:

1. pthread_create():創建線程開始運行相關線程函數,運行結束則線程退出

2. pthread_eixt():因為exit()是用來結束進程的,所以則需要使用特定結束線程的函數

3. pthread_join():掛起當前線程,用于阻塞式地等待線程結束,如果線程已結束則立即返回,0=成功

4. pthread_cancel():發送終止信號給thread線程,成功返回0,但是成功并不意味著thread會終止

5. pthread_testcancel():在不包含取消點,但是又需要取消點的地方創建一個取消點,以便在一個沒有包含取消點的執行代碼線程中響應取消請求.

6. pthread_setcancelstate():設置本線程對cancle線程的反應

7. pthread_setcanceltype():設置取消狀態 繼續運行至下一個取消點再退出或者是立即執行取消動作

8. pthread_setcancel():設置取消狀態

三、線程互斥與同步機制

基本的互斥與同步的操作方法:

1. pthread_mutex_init():互斥鎖的初始化

2. pthread_mutex_lock():鎖定互斥鎖,如果嘗試鎖定已經被上鎖的互斥鎖則阻塞至可用為止

3. pthread_mutex_trylock():非阻塞的鎖定互斥鎖

4. pthread_mutex_unlock():釋放互斥鎖

5. pthread_mutex_destory():互斥鎖銷毀函數

(更多免費 C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK等等多個知識點干貨學習資料加群 960994558)

四、多線程實踐

1. 基本的線程及建立運行

下面的代碼是C/C++開發的基本的線程的運行,使用的就是最基本的pthread.h:

/* thread.c */

例程中循環3次建立3條線程,并且使用pthread_join函數依次等待線程結束;

線程中使用rand()獲取隨機值隨機休眠5次,隨意會出現后執行的線程先執行完成;

運行結果:

$

可以看到,線程1先于線程0執行,但是pthread_join的調用時間順序,先等待線程0執行;

由于線程1已經早結束,所以線程0被pthread_join等到的時候,線程1已結束,就在等待到線程1時,直接返回;

2. 線程執行的互斥和同步pthread_mutex_lock

下面我們在上面的程序中增加互斥鎖:

/*thread_mutex.c*/

在上面的例程中直接添加同步鎖pthread_mutex_t;

在線程中加入,程序在執行線程程序時,調用pthread_mutex_lock上鎖,發現上鎖時候后進入等待,等待鎖再次釋放后重新上鎖;

所以線程程序加載到隊列中等待,等待成功上鎖后繼續執行程序代碼;

運行結果如下:

Create

以上可能存在有不足的地方歡迎指出討論,覺得不錯的朋友希望能得到您的轉發支持,同時可以持續關注我。

(更多免費 C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK等等多個知識點干貨學習資料加群 960994558)

總結

以上是生活随笔為你收集整理的线程 sleep 取消_C/C++ 多线程机制的全部內容,希望文章能夠幫你解決所遇到的問題。

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