首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

C语言多线程编程(windows上)

2012-11-05 
C语言多线程编程(windows下)运行之前需要做一些配置: 1.下载PTHREAD的WINDOWS开发包 pthreads-w32-2-4-0-r

C语言多线程编程(windows下)
运行之前需要做一些配置:
1.下载PTHREAD的WINDOWS开发包 pthreads-w32-2-4-0-release.exe(任何一个版本均可)
   http://sourceware.org/pthreads-win32/ ,解压到一个目录。
2.找到include和lib文件夹,下面分别把它们添加到VC++6.0的头文件路径和静态链接库路径下面:
   a).Tools->Options,选择Directory页面,然后在Show directories for:中选择Include files(默认)     在Directories中添加include的路径。在Show directories for:中选择Library files,
    在Directories中添加lib的路径。
   b).Project->Settings,选择Link页面,然后将lib下的*.lib文件添加到Object/library Modules,
     各lib文件以空格隔开。
   c).将lib下的*.dll文件复制到工程目录下,即根目录。 

3.代码

#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <windows.h>int  piao = 100;pthread_mutex_t mut; void* tprocess1(void* args){   int a = 0;       while(true){   pthread_mutex_lock(&mut);   if(piao>0){            Sleep(1);            piao--;            printf("窗口1----------------还剩%d张票\n",piao);   }else{    a = 1;   }  pthread_mutex_unlock(&mut);   if(a == 1) {    break;   }}               return NULL;}void* tprocess2(void* args){     int a = 0;       while(true){   pthread_mutex_lock(&mut);   if(piao>0){            Sleep(1);           piao--;        printf("窗口2----------------还剩%d张票\n",piao);   }else{    a = 1;   }  pthread_mutex_unlock(&mut);   if(a == 1) {    break;   }}               return NULL;}void* tprocess3(void* args){   int a = 0;       while(true){   pthread_mutex_lock(&mut);   if(piao>0){       Sleep(1);             piao--;               printf("窗口3----------------还剩%d张票\n",piao);   }else{    a = 1;   }  pthread_mutex_unlock(&mut);   if(a == 1) {    break;   }}               return NULL;}void* tprocess4(void* args){       int a = 0;       while(true){   pthread_mutex_lock(&mut);   if(piao>0){       Sleep(1);                         piao--;               printf("窗口4----------------还剩%d张票\n",piao);   }else{    a = 1;   }  pthread_mutex_unlock(&mut);   if(a == 1) {    break;   }}               return NULL;}int main(){  pthread_mutex_init(&mut,NULL);  pthread_t t1;  pthread_t t2;  pthread_t t3;  pthread_t t4;  pthread_create(&t4,NULL,tprocess4,NULL);  pthread_create(&t1,NULL,tprocess1,NULL);  pthread_create(&t2,NULL,tprocess2,NULL);  pthread_create(&t3,NULL,tprocess3,NULL);  Sleep(5000);  return 0;}

热点排行