ps aux | grep 进程名
kill -TERM 进程号
如果你指的写程序, 那就参考 man pthread_exit
暂停线程必须想一个办法在能控制线程在能暂停的地方暂停,暂停点不能有任何数据已经上锁,上面说的那种while循环中也不能被暂停,还有一种就是当有大量内存被申请且还没有释放之前最好也不要被暂停。我建议大家用手动模式的信号量来实现。像这样申请一个信号量:hEvent=::CreateEvent(NULL,TURE,TURE,lpName)//第二个参数是TURE,设定为手动模式,防止::WaitForSingleObject改变信号量的状态。执行完成后隐式退出
由线程本身显示调用pthread_exit 函数退出;
pthread_exit (void * retval)
被其他线程用pthread_cance函数终止:
pthread_cance (pthread_t thread)
解决办法:
// 创建线程前设置 PTHREAD_CREATE_DETACHED 属性
pthread_attr_t attr
pthread_t thread
pthread_attr_init (&attr)
pthread_attr_setdetachstat(&attr, PTHREAD_CREATE_DETACHED)
pthread_create (&thread, &attr, &thread_function, NULL)
pthread_attr_destroy (&attr)
当线程为joinable时,使用pthread_join来获取线程返回值,并释放资源。
当线程为joinable时,也可在线程中调用 pthread_detach(pthread_self())
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)