linux 线程挂起恢复的简单示例
2012-08-27 10:19
471 查看
参考:
/article/9523217.html《Linux下线程的挂起和恢复》
写了个demo:
编译命令:
gcc file.c -o file lpthread
/article/9523217.html《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 work printf("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 0 printf("1111\n"); srpthread_resume(); printf("2222\n"); sleep(3); printf("3333\n"); srpthread_suspend(); printf("4444\n"); #endif return 1; }
编译命令:
gcc file.c -o file lpthread
相关文章推荐
- linux 线程挂起恢复的简单示例
- linux中线程的挂起与恢复(进程暂停)
- 简单linux线程示例代码
- linux中线程的挂起与恢复(进程暂停)
- linux中线程的挂起与恢复(进程暂停)(2013-06-19 13:42:58)
- Linux下线程的挂起和恢复
- linux线程的挂起与恢复
- linux线程创建、挂起、恢复、退出
- Linux下线程的挂起和恢复 http://blog.chinaunix.net/uid-21765995-id-1815655.html
- linux中线程的挂起与恢复(进程暂停)
- 【JAVA】挂起、恢复和停止线程的示例代码
- linux 线程挂起恢复
- Linux下线程的挂起和恢复
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- Linux下线程的挂起和恢复
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- Linux中线程的挂起与恢复(进程暂停)
- Linux中对线程的挂起与恢复的实现
- linux进程的挂起和恢复