首页 > 代码库 > Linux_C pthread 关于多线程一个简单的程序
Linux_C pthread 关于多线程一个简单的程序
1 /******************************************************************************* 2 * twordcount.c threaded word counter for two files 3 */ 4 #include <stdio.h> 5 #include <pthread.h> 6 #include <ctype.h> 7 8 int total_words; 9 pthread_mutex_t counter_lock=PTHREAD_MUTEX_INITIALIZER;//互斥锁10 11 int main(int argc, char* argv[]) {12 pthread_t t1, t2;13 void * count_words(void*);14 pthread_create(&t1, NULL, count_words, (void*)argv[1]);15 pthread_create(&t2, NULL, count_words, (void*)argv[2]);16 pthread_join(t1, NULL);17 pthread_join(t2, NULL);18 printf("%5d: total words \n", total_words);19 }20 21 void* count_words(void* file) {22 char* filename=(char* ) file;23 FILE* fp;24 int c, prevc=‘\0‘;25 if((fp=fopen(filename, "r"))!=NULL) {26 while((c=fgetc(fp))!=EOF) {27 if(!isalnum(c) && isalnum(prevc)) {28 pthread_mutex_lock(&counter_lock);29 total_words++;30 pthread_mutex_unlock(&counter_lock);31 }32 prevc=c;33 }34 fclose(fp);35 }else{36 perror("fopen");37 }38 return NULL;39 }
gcc twordcount.c -o twordcount -lpthread
./twordcount file1 file2
Linux_C pthread 关于多线程一个简单的程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。