linux 线程挂起恢复的简单示例
来源:互联网 发布:中国停止登月计划 知乎 编辑:程序博客网 时间:2024/05/21 14:05
参考:
http://blog.csdn.net/chennxi/article/details/6234529《Linux下线程的挂起和恢复》
写了个demo:
#include <unistd.h>#include <pthread.h>static pthread_mutex_t mutex;static pthread_cond_t cond;static int flag = 0;void srpthread_init(){pthread_mutex_init(&mutex,NULL);pthread_cond_init(&cond,NULL);}void srpthread_suspend(){pthread_mutex_lock(&mutex);flag--;pthread_mutex_unlock(&mutex);}void srpthread_resume(){pthread_mutex_lock(&mutex);flag++;pthread_cond_signal(&cond);pthread_mutex_unlock(&mutex);}void *thread_run(){while(1){pthread_mutex_lock(&mutex);while(flag<=0){pthread_cond_wait(&cond,&mutex);}pthread_mutex_unlock(&mutex);//actual workprintf("i am running!\n");}}int main(int argc,char *argv[]){char ch;pthread_t p1;srpthread_init();pthread_create(&p1,NULL,(void *)thread_run,NULL);while(1){scanf("%c",&ch);switch(ch){case 's':srpthread_suspend();break;case 'r':srpthread_resume();break;default:break;}}#if 0printf("1111\n");srpthread_resume();printf("2222\n");sleep(3);printf("3333\n");srpthread_suspend();printf("4444\n");#endifreturn 1;}
编译命令:
gcc file.c -o file lpthread
- linux 线程挂起恢复的简单示例
- linux 线程挂起恢复的简单示例
- linux线程的挂起与恢复
- Linux下线程的挂起和恢复
- Linux下线程的挂起和恢复
- Linux下线程的挂起和恢复
- 【JAVA】挂起、恢复和停止线程的示例代码
- 线程的挂起和恢复
- 线程的挂起与恢复
- 线程的挂起与恢复
- 线程的挂起与恢复
- 线程的挂起与恢复
- Linux中对线程的挂起与恢复的实现
- linux中线程的挂起与恢复(进程暂停)
- linux中线程的挂起与恢复(进程暂停)
- linux中线程的挂起与恢复(进程暂停)
- linux线程创建、挂起、恢复、退出
- C# 线程的挂起与恢复
- T-SQL XQUERY.VALUE
- T-SQL XQUERY.QUERY
- pku 2100
- android学习资料
- 学着提高自己的幸福感
- linux 线程挂起恢复的简单示例
- make menuconfig跟踪
- T-SQL XQUERY.VARIABLE
- triangulate.cpp
- 回调函数 c实现
- D3DXIntersect
- Visual C++ 6.0 支持gdi+
- android 源码下载
- android Handler post sendMessage