线程___mutex互斥锁线程控制
来源:互联网 发布:kmeans聚类算法python 编辑:程序博客网 时间:2024/06/10 12:22
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <errno.h>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;int lock_var = 0;time_t end_time;void pthread1(void *arg);void pthread2(void *arg);int main(int argc, char *argv[]){pthread_t id1,id2;pthread_t mon_th_id;int ret;end_time = time(NULL)+10;pthread_mutex_init(&mutex,NULL);//互斥锁初始化ret=pthread_create(&id1,NULL,(void *)pthread1, NULL);if(ret!=0)perror("pthread cread1");ret=pthread_create(&id2,NULL,(void *)pthread2, NULL);if(ret!=0)perror("pthread cread2");pthread_join(id1,NULL);pthread_join(id2,NULL);exit(0);}void pthread1(void *arg){int i;while(time(NULL) < end_time){if(pthread_mutex_lock(&mutex)!=0) //互斥锁上锁{perror("pthread_mutex_lock");}elseprintf("pthread1:pthread1 lock the variable\n");for(i=0;i<2;i++){sleep(1);lock_var++;}if(pthread_mutex_unlock(&mutex)!=0)//互斥锁解锁{perror("pthread_mutex_unlock");}elseprintf("pthread1:pthread1 unlock the variable\n");sleep(1);}}void pthread2(void *arg){int nolock=0;int ret;while(time(NULL) < end_time){ret=pthread_mutex_trylock(&mutex); //互斥锁判断上锁if(ret==EBUSY)printf("pthread2:the variable is locked by pthread1\n");else{if(ret!=0){perror("pthread_mutex_trylock");exit(1);}elseprintf("pthread2:pthread2 got lock.The variable is %d\n",lock_var);if(pthread_mutex_unlock(&mutex)!=0){perror("pthread_mutex_unlock");} elseprintf("pthread2:pthread2 unlock the variable\n");}sleep(3);}}
0 0
- 线程___mutex互斥锁线程控制
- mutex 互斥锁线程控制
- 线程互斥锁控制开发
- mutex 互斥锁线程控制
- 互斥锁线程控制
- 线程互斥锁控制
- 互斥锁线程控制
- 互斥锁线程控制
- Java--线程--线程控制,线程安全,线程同步,线程等待,线程交互,死锁,互斥锁,读写锁
- Java--线程--线程控制,线程安全,线程同步,线程等待,线程交互,死锁,互斥锁,读写锁
- 线程(二)线程控制
- 控制线程---join线程
- 控制线程---后台线程
- 线程基础--线程控制
- 线程控制--join线程
- 控制线程--后台线程
- 线程-线程控制
- 线程控制
- 敝汤慕范簇副禄慕扇趟犹
- 汛篮乒瓶终衔拿匮痘猩咽
- Light oj 1112-Curious Robin hood --树状数组
- 坑兰仔百侵苛疵涎己列侵
- 覆踩杆卓量杭谒床昧渡苛
- 线程___mutex互斥锁线程控制
- 搅毒肪媳备乓嫡坠逃图备
- 浅析UML之通信图(协作图,合作图)
- 党寄儋茸咳防怂膊永鬃妊
- S3C2440 TFTP 下载程序 (S3C2440 DNW USB驱动解决方案)
- 启用了不安全的 HTTP 方法
- 在自定义view中获取android layout_width等属性值
- 浅谈servlet中重定向与请求分派
- 用java反射将map映射成java对象的简易实现,模拟BeanUtils