linux C语言系统编程多线程学习实例
来源:互联网 发布:smart200编程软件v2.3 编辑:程序博客网 时间:2024/05/16 00:24
linux C语言系统编程多线程学习实例
一、测试C语言代码
/* * multiple_thread.c : c multiple thread programming in linux *author : weifanghai *time : 2017/12/6*/#include <pthread.h>#include <stdio.h>#include <sys/time.h>#include <string.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;void *thread1(){ int number=0, i; printf ("thread1 : I'm thread 1\n"); pthread_mutex_lock(&mut); for (i = 0; i < MAX; i++) { printf("thread1 : number = %d\n",number); number++; sleep(1); }pthread_mutex_unlock(&mut); printf("thread1, are you waiting for me , main function?\n"); pthread_exit(NULL);}void *thread2(){ int number=0, i; printf("thread2 : I'm thread 2\n");pthread_mutex_lock(&mut); for (i = 0; i < MAX; i++) { printf("thread2 : number = %d\n",number); number++; sleep(1); } pthread_mutex_unlock(&mut); printf("thread2, are you waiting for me , main function?\n"); pthread_exit(NULL);}void thread_create(void){ int temp; memset(&thread, 0, sizeof(thread)); //comment1 /*创建线程*/ if((temp = pthread_create(&thread[0], NULL, thread1, NULL)) != 0) //comment2 printf("failed to create thread1!\n"); else printf("success to create thread1!\n"); if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0) //comment3 printf("failed to create thread2!"); else printf("success to create thread2!\n");}void thread_wait(void){ /*等待线程结束*/ if(thread[0] !=0) { //comment4 pthread_join(thread[0],NULL); printf("thread1 all done!\n"); } if(thread[1] !=0) { //comment5 pthread_join(thread[1],NULL); printf("thread2 all done!\n"); }}int main(){ /*用默认属性初始化互斥锁*/printf("start!\n"); pthread_mutex_init(&mut,NULL); printf("I am main function, I am creating threads now!\n"); thread_create(); printf("I am main function, I am waiting all threads have been done completely!\n"); thread_wait(); return 0;}
二、执行结果
阅读全文
0 0
- linux C语言系统编程多线程学习实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- java 行为型模式 策略模式
- CockroachDB中的Context
- oracle操作字符串:拼接、替换、截取、查找(修改版)
- 休闲食品代理,淡季做市场,旺季做销量
- OWASP ZAP 2.7.0 版本全球发布|棉花哥的博客
- linux C语言系统编程多线程学习实例
- 写给大数据开发初学者的话 | 附教程
- 虚拟货币,山寨币开发多节点集群的部署(1)
- 如何解决:对应的服务器 tls 为 tls 1.0,小程序要求的TLS版本必须大于等于1.2问题
- 网络编程
- mac in thinkpad
- Python入门笔记1
- Java-修饰符
- 【Scikit-Learn 中文文档】密度估计