有关pthread线程的暂停与恢复的讨论
来源:互联网 发布:虚拟机运行软件卡 编辑:程序博客网 时间:2024/05/21 11:17
pthead线程的暂停与恢复的讨论,一个非常好的回答 http://bbs.csdn.net/topics/390321574
希望对自己和有需要的朋友有很大的帮助。。。。
自己参考那个,选择和修改了那位兄弟的部分代码 ,,现在可以实现那个功能
void pthread_suspend(void) { if (pthread_pause == false) { pthread_mutex_lock( &mutex_pause ); pthread_pause = true; printf("\n------transport pause------\n"); pthread_mutex_unlock( &mutex_pause ); } else { printf("the transport suspend already/n"); } } void pthread_resume(void) { if (pthread_pause == true) { pthread_mutex_lock(&mutex_pause); pthread_pause = false; pthread_cond_broadcast(&cond_pause); printf("------transport resume------/n"); pthread_mutex_unlock(&mutex_pause); } else { printf("transport resume already/n"); } } void* threadFunc(void* args) //工作线程函数{ while(1) { if(!pthread_pause) { printf("working..."); //work(); } else { printf("rest..."); } sleep(1); } return ((void*)0);}void* threadFunc(void* args) //工作线程函数 { while(1) { if(pthread_pause == false) { work(); } else { pthread_cond_wait(&cond_pause,&mutex_pause); } } return ((void*)0); } int main(){pthread_t id;int ret;ret = pthread_create(&id,NULL,threadFunc,(void *)sockClient);if (ret != 0){printf("Create thread error!\r\n");exit(1);} pthread_create(&thread, NULL, threadFunc, NULL); while (1){if( kbhit() )//有键盘输入 kbhit !0;{ch = getch();if( ch == 's' ){pthread_suspend();}if(ch == 'r'){pthread_resume();}}} return 0;}
0 0
- 有关pthread线程的暂停与恢复的讨论
- C# 线程的暂停与恢复
- -线程的暂停和恢复
- linux中线程的挂起与恢复(进程暂停)
- linux中线程的挂起与恢复(进程暂停)
- linux中线程的挂起与恢复(进程暂停)
- Android中java线程的暂停与恢复
- NSTimer的暂停与恢复
- NSTimer的暂停与恢复
- 线程的暂停、恢复和终止
- 线程的暂停和恢复小例子
- 线程的暂停、恢复和终止
- 线程暂停与恢复研究
- 线程的终止与暂停
- 线程的暂停与重新启动
- NSTimer 的暂停与恢复运行。
- iOS动画的暂停与恢复
- Java线程优先级和线程暂停恢复的问题
- 安装Product Review Captcha 出错
- emulatorx86.exe已停止工作 模拟器启动错误 问题解决方法
- Android音频系统之AudioFlinger(二)
- WPF自定义命令
- Map
- 有关pthread线程的暂停与恢复的讨论
- android DeBug错误解析
- android 数据库 sqlite 操作
- php图片裁剪
- php中的多种界面跳转方式
- atexit函数
- Android之使用Android-query框架进行开发(二)
- 一键安装包,在linux系统下安装mysql+php+apache
- aspx中的Page_Load不执行