
linux_app
文章平均质量分 81
slj_win
这个作者很懒,什么都没留下…
展开
-
pthread_cancel
线程创建1.1 线程与进程相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。转载 2012-02-17 17:03:29 · 1001 阅读 · 0 评论 -
pthread_cancel()
取消是一种让一个线程可以结束其它线程的机制。更好的是,一个线程可以对另一个线程发送一个结束的请求。依据设置的不同,目标线程可能会置之不理,可能会立即终止也可能会将它推迟到下一个取消点。当一个线程最终尊重了取消的请求,它的行为就像执行了pthread_exit(PTHREAD_CANCELED):所有的清理函数句柄以相反的次序被调用,线程终止函数被调用,最终结束线程的执行,并且返回PTHRE转载 2012-02-17 17:07:11 · 928 阅读 · 0 评论 -
pthread_cleanup_push()
线程终止时的清理不论是可预见的线程终止还是异常终止,都会存在资源释放的问题,在不考虑因运行出错而退出的前提下,如何保证线程终止时能顺利的释放掉自己所占用的资源,特别是锁资源,就是一个必须考虑解决的问题。最经常出现的情形是资源独占锁的使用:线程为了访问临界资源而为其加上锁,但在访问过程中被外界取消,如果线程处于响应取消状态,且采用异步方式响应,或者在打开独占锁以前的运行路径上存在取消点,则该转载 2012-02-17 17:10:41 · 531 阅读 · 0 评论 -
linux中线程相关函数
1. 比较两个线程 ID 是否一致。 线程ID 使用 pthread_t 数据类型来表示。Linux 使用 unsigned long int 表示pthread_t 数据类型。Solaris 9 把 pthread_t 数据类型表示为 unsigned int。FreeBSD5.2.1 和 MAC OS X 10.3 用一个指向 pthread 结构的指针来表示pthread_t 数据类转载 2012-02-17 18:26:08 · 596 阅读 · 0 评论 -
pthread_cancel用法及常见问题
先看下面一段程序:[cpp] view plaincopyprint?#include #include #include #include void* func(void *) { pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);转载 2012-02-17 12:25:53 · 11033 阅读 · 2 评论 -
pthread_cleanup_push与pthread_cleanup_pop的目的 作用
首先你必须知道pthread_cleanup_push与pthread_cleanup_pop的目的(作用)是什么。比如thread1:执行pthread_mutex_lock(&mutex);//一些会阻塞程序运行的调用,比如套接字的accept,等待客户连接sock = accept(......); //这里是随便找的一个可以阻塞的接口转载 2012-02-17 13:06:32 · 10792 阅读 · 6 评论