91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[Linux線程]線程的同步--使用互斥鎖完成線程同步

發布時間:2020-07-19 11:40:29 來源:網絡 閱讀:689 作者:銀河星君 欄目:編程語言
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

pthread_mutex_t mutex;    //定義一個互斥量             
int x;                    //定義一個全局變量                                
//這是線程1的入口函數
void threaddeal1(void)                
{
  while(x>0)              //如果X>0
  {
    pthread_mutex_lock(&mutex);        //對互斥量進行加鎖操作       
    printf("線程1正在運行: x=%d \n",x); //輸出當前的x值
    x--;                                //將x的值-1
    pthread_mutex_unlock(&mutex);       //對互斥兩進行開鎖操作
    sleep(1);                           //休眠1秒
  }
  pthread_exit(NULL);                   //進程退出
}
//這是線程2的入口函數,線程2和線程1的操作完全相同
void threaddeal2(void) 
{
  while(x>0)
  {
    pthread_mutex_lock(&mutex); 
    printf("線程2正在運行: x=%d \n",x);
    x--;
    pthread_mutex_unlock(&mutex);
    sleep(1);
  }
  pthread_exit(NULL);
}
//這是主函數
int main(int argc,char *argv[])
{
  pthread_t threadid1,threadid2;                        
  int ret;
  ret = pthread_mutex_init(&mutex,NULL);   //初始化互斥鎖
  if(ret != 0)
  {
    printf ("初始化互斥鎖失敗.\n"); 
    exit (1);
  }
  x = 10;     //給全局變量賦初始化值                                
  ret = pthread_create(&threadid1, NULL, (void *)&threaddeal1, NULL);  //創建線程1    
  if(ret != 0)
  {
    printf ("創建線程1失敗.\n");
    exit (1);
  }
  ret = pthread_create(&threadid2, NULL, (void *)&threaddeal2, NULL);  //創建線程2   
  if(ret != 0)
  {
    printf ("創建線程2失敗.\n");
    exit (1);
  }
  pthread_join(threadid1, NULL); 
  pthread_join(threadid2, NULL);    //阻塞線程1和線程2
  return (0);
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉林市| 岢岚县| 兰州市| 江永县| 公安县| 苍南县| 通榆县| 托里县| 尼玛县| 永定县| 陵水| 孙吴县| 波密县| 青川县| 平山县| 昆明市| 和田市| 海宁市| 柘城县| 万盛区| 松桃| 察哈| 家居| 孝义市| 葫芦岛市| 平阳县| 霍邱县| 密山市| 灌南县| 闸北区| 偏关县| 巴楚县| 饶平县| 武川县| 上思县| 铜山县| 丽江市| 浦江县| 吐鲁番市| 闽清县| 乡城县|