Linux下多线程编程学习
2017-04-21 10:48
281 查看
在windows下已经基本上能够实现多线程了。接下来进行linux端的探索,结合网上的代码进行了一定的修改。
下一步进行的计划就是把FjBeater客户端在linux下进行移植。
再下一步计划,就是写出能够双平台编译的通用代码。
下一步进行的计划就是把FjBeater客户端在linux下进行移植。
再下一步计划,就是写出能够双平台编译的通用代码。
#include<pthread.h> #include<stdio.h> #include<string.h> // for memset function #include<unistd.h> // for sleep() function #define MAX 10 pthread_t thread[2]; pthread_mutex_t mut; int number=0,i; void *thread1(void* a){ printf("thread1: I'm thread 1\n"); for(i=0;i<MAX;i++){ printf( "thread1: number=%d\n" ,number ); pthread_mutex_lock(&mut); number++; pthread_mutex_unlock(&mut); sleep(2); } printf( "thread1: is it the main thread waiting for me to finish?\n" ); pthread_exit(NULL); } void *thread2(void* a){ printf( "thread2: I'm thread 2\n" ); for(i=0;i<MAX;i++){ printf( "thread2: number=%d\n" ,number); pthread_mutex_lock(&mut); number++; pthread_mutex_unlock(&mut); sleep(3); } printf( "thread2: is it the main thread waiting for me to finish?\n" ); pthread_exit(NULL); } void thread_create(void){ int temp; memset(&thread,0,sizeof(thread)); if( (temp=pthread_create(&thread[0],NULL,thread1,NULL))!=0 ){ printf( "thread1 create failure!\n" ); }else{ printf( "thread1 has been create!\n" ); } if( (temp=pthread_create(&thread[1],NULL,thread2,NULL))!=0 ){ printf( "thread2 create failure!\n" ); }else{ printf( "thread2 has been create!\n" ); } } void thread_wait(void){ if(thread[0]!=0){ pthread_join(thread[0],NULL); printf( "thread1 has been stop.\n" ); } if(thread[1]!=0){ pthread_join(thread[1],NULL); printf( "thread2 has been stop.\n" ); } } int main(){ pthread_mutex_init(&mut, NULL); printf( "I'm main thread! Creating sub-thread now.\n" ); thread_create(); printf( "I'm main thread! Waiting for sub-thread stop.\n" ); thread_wait(); return 0; } |
相关文章推荐
- 2008-11-10 15:24 Linux下C语言的多线程编程学习[写得很好哦]
- Linux下的多线程编程 学习资料
- Linux下C语言的多线程编程学习[写得很好哦]
- Linux程序设计学习笔记----多线程编程之线程同步条件变量
- linux 学习- 编程基础之多线程编程(创建多线程)
- 从零学习linux多线程编程--第一篇
- Linux程序设计学习笔记----多线程编程基础概念与基本操作
- 学习linux多线程编程----相关概念
- Linux socket编程学习初步(5)--服务器多线程
- Proxy源代码分析--谈谈如何学习linux网络编程 [转]
- linux程序设计 线程 多线程编程 信号量
- 和我一起学习Linux编程(一)----------------我的Linux宣言
- 学习Linux网络编程
- Proxy源代码分析--谈谈如何学习linux网络编程
- Linux系统下的多线程编程入门二
- Linux操作系统下的多线程编程详细解析
- 如何学习linux编程
- Linux多线程编程和Linux 2.6下的NPTL
- linux下编程学习----- 线程同步之无名信号量
- Proxy源代码分析--谈谈如何学习linux网络编程