运行之前需要做一些配置:
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;
}
分享到:
相关推荐
windows环境下C语言多线程实现网络编程,多人聊天室,[总结].pdf
c语言多进程多线程编程c语言多进程多线程编程c语言多进程多线程编程c语言多进程多线程编程
自己编的基于UDP的socket程序,收发一体,支持多线程操作
【个人总结系列-48】Windows及Linux环境下的C语言多线程编程总结.docx
统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。 本文我们将介绍在Linux 下编写多进程和多线程程序的一些初步知识。 1 引言 对于没有接触过 Unix/Linux 操作系统的人来说,fork ...
windows环境下C语言多线程实现网络编程,多人聊天室,.pdf
windows环境下C语言多线程实现网络编程,多人聊天室,[收集].pdf
本书通过众多实例介绍了如何实现Windows下的多线程编程,既重点介绍了Win32API下的多线程编程和MFC下的多线程编程,又介绍了多线程机制在网络编程、图形编程和数据库中的应用。本书每一章都从简单的多线程实例出发...
此实例在windows 10系统上可以成功运行,可以修改一下,在linux上也可以运行,思路都是一样的。 说明:这个是个图书馆案例,默认100个座位,生产者与消费者各2个线程 (修改:加锁)
Linux下C语言应用编程》深入浅出地讲解了Linux下C应用程序开发所需的基本工具、知识和技巧,主要包括:开发工具的使用和技巧、文件I/O编程、多进程编程、进程间通信、多线程编程、网络编程等内容。可以让读者轻松、...
我们进行多线程编程,可以有多种选择,可以使用WindowsAPI,如果你在使用GTK,也可以使用GTK实现了的线程库,如果你想让你的程序有更多的移植性你好是选择POSIX中的Pthread函数库,我的程序是在Linux下写的,所以我...
本书范例丰富,且具有代表性,如Socket编程、客户/服务端编程、多线程开发、CGI编程、X Windows下的Motif编程等。读者直接或只需稍作修改就可以将它们应用到自己的应用程序开发中。这些范例的源代码可以从配套光盘的...
主要介绍了C语言编程中借助pthreads库进行多线程编程的示例,文中的示例环境为Windows系统,需要的朋友可以参考下
chm格式的核心编程 清晰,初学者必备 请大家放心下载,只看前面几章就会大有收获
《Linux多线程服务端编程:使用muduo C++网络库》这本书自今年一月上市...工作中,我没有写过单线程的网络服务程序,没有写过C语言的网络服务程序,也没有写过运行在Windows下的网络服务程序,因此本书不涉及这些内容。
Windows(VC6+doc)下C语言多线程聊天室,使用Socket套接字编程,具有多人聊天和私聊的功能,还支持断开重新连接,适合新手学习C语言Socket基础
Pthread C语言开发线程包,移植到windows版,习惯linux多线程编程的同学可以考虑使用~
windows编程 VC6.0 网络程序设计 TCP 聊天程序 转发所以发过来的信息 客户端多线程 C语言 客户端与服务器端源代码
Windows下基于socket的多线程群聊程序,环境是VC6.0。
主要介绍了Windows系统下C语言编程中Glib库的使用,Glib库在多线程编程中经常可以用到,需要的朋友可以参考下