一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

linux 線程同步實例

 Ethan的博客 2011-10-10
#include<stdio.h>

#include<unistd.h>
#include<stdlib.h>
#include<pthread.h>
#include<semaphore.h>

void *thread_function(void *arg);
pthread_mutex_t work_mutex;/*互斥量,保護工作區(qū)間及額外變量 time_to_exit*/

#define WORK_SIZE 1024
char work_area[WORK_SIZE];/*工作區(qū)*/
int time_to_exit=0;

int main()
{
    int res;
    pthread_t a_thread;
 void *thread_result;
 res = pthread_mutex_init(&work_mutex,NULL);//初始化工作區(qū)間
 if(res!=0){
  perror("Mutex initalization  failed");
  exit(EXIT_FAILURE);
 }
 res = pthread_create(&a_thread,NULL,thread_function,NULL);//創(chuàng)建新線程
 if(res!=0){
  perror("Thread creation failed");
  exit(EXIT_FAILURE);
 }

 /* 主線程*/
 pthread_mutex_lock(&work_mutex);
 printf("Input some text,Enter 'end' to finish\n");
 while(!time_to_exit){
  fgets(work_area,WORK_SIZE,stdin);
  pthread_mutex_unlock(&work_mutex);
  while(1){
   pthread_mutex_lock(&work_mutex);
   if(work_area[0]!='\0'){
    pthread_mutex_unlock(&work_mutex);
    sleep(1);
   }else{
    break;
   }
  }
 }

 pthread_mutex_unlock(&work_mutex);
 printf("\n Waiting for thread to finish...\n");
 res = pthread_join(a_thread,&thread_result);
 if(res !=0 ){
  perror("Thread joined\n");
  pthread_mutex_destroy(&work_mutex);
  exit(EXIT_SUCCESS);
 }
 printf("Thread joined\n");
 pthread_mutex_destroy(&work_mutex);
 exit(EXIT_SUCCESS);
}
 // 新線程
 void *thread_function(void *arg){

  sleep(1);
  pthread_mutex_lock(&work_mutex);
  while(strncmp("end",work_area,3)!=0){
   printf("You input %d characters\n",strlen(work_area)-1);
   work_area[0]='\0';
   pthread_mutex_unlock(&work_mutex);
   while(work_area[0]=='\0'){
    pthread_mutex_unlock(&work_mutex);
    sleep(1);
    pthread_mutex_lock(&work_mutex);
   }
  }
   time_to_exit=1;
   work_area[0]='\0';
   pthread_mutex_unlock(&work_mutex);
   pthread_exit(0);
 }

-----------------------------------------------------------------
編 譯運行:
$gcc -Wall -lpthread -o test threadsyntest.c

$./test

結(jié) 果:

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    91熟女大屁股偷偷对白| 亚洲综合天堂一二三区| 能在线看的视频你懂的| 黄色av尤物白丝在线播放网址| 中文字幕在线五月婷婷| 日本熟女中文字幕一区| 日韩欧美91在线视频| 国产在线视频好看不卡| 99久久无色码中文字幕免费| 韩日黄片在线免费观看| 欧美加勒比一区二区三区 | 中文字幕精品一区二区三| 日韩一本不卡在线观看| 欧美日韩无卡一区二区| 国产亚洲系列91精品| 亚洲深夜精品福利一区| 在线观看视频成人午夜| 欧美人妻免费一区二区三区| 日本人妻中出在线观看| 一区二区三区四区亚洲专区| 在线免费国产一区二区三区| 日本精品理论在线观看| 亚洲一区二区精品福利| 91久久国产福利自产拍| 99久久免费看国产精品| 亚洲国产中文字幕在线观看 | 欧美精品一区二区水蜜桃| 日韩亚洲激情在线观看| 日韩精品免费一区二区三区| 欧美丰满大屁股一区二区三区| 91在线播放在线播放观看| 久久精品色妇熟妇丰满人妻91| 国产精品美女午夜福利| 国产欧美日韩综合精品二区| 大香蕉再在线大香蕉再在线| 欧美大黄片在线免费观看| 亚洲中文字幕免费人妻| 深夜视频成人在线观看| 欧美人妻盗摄日韩偷拍| 一区二区三区四区亚洲另类| 微拍一区二区三区福利|