
linux thread
zb872676223
pc软件开发
展开
-
pthread_join函数及linux线程
pthread_join函数及linux线程分类: 程序相关2008-05-08 18:14 1045人阅读 评论(2) 收藏 举报pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束转载 2014-07-17 14:34:44 · 896 阅读 · 0 评论 -
Linux下的多线程编程
首页 > 编程技术 > 其它 > 正文Linux下的多线程编程本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Uni转载 2014-07-24 17:33:54 · 434 阅读 · 0 评论 -
线程函数有关的问题
创建线程时,线程函数如果要设置成类的成员函数,则必须是静态成员函数,在此函数中不能使用非静态成员变量,如果要使用非静态成员变量,则一种比较适合线程的方法是:建立线程的时候把this作为CreateThread的一个参数(即第4个参数,就是那个LPVOID型的),然后线程里就对应pParam,例如: static UINT ThreadProc(LPVOID pParam) {转载 2014-07-24 17:24:40 · 517 阅读 · 0 评论 -
在linux c++类中的成员函数里创建多线程要注意的地方
如何在linux 下c++中类的成员函数中创建多线程linux系统中线程程序库是POSIX pthread。POSIX pthread它是一个c的库,用C语言进行多线程编程我这里就不多说了,网上的例子很多。但是如何在C++的类中实现多线程编程呢?如果套用C语言中创建多线程的方式,在编译的时候会出现...does not match `void*(*)(void*)..这样的错误。出现这种情转载 2014-08-18 15:10:45 · 2088 阅读 · 0 评论 -
一个容易出现死锁的场景
前不久在工作中遇到一个死锁的问题,特记录下。假设有这样的一个场景, 你调用某个接口, 这个接口调用的过程中,会上两个读写锁,上锁的顺序是先A后B。然后在底层网络io回调的时候,也会使用到这两个锁,上锁的顺序是先B后A。 那么就存在这样一种情况。假如线程T1调用接口,刚上完A锁,还没有上B锁。底层回调线程T2刚上完B锁,还没有上A锁。这个时候,线程T1要申请上B锁,但是B锁已经被线程转载 2014-08-15 16:52:09 · 2932 阅读 · 0 评论 -
递归锁(可重入锁)
近日在调试一个线程挂起的BUG,究其原因是该用递归锁的地方使用了普通的互斥锁,导致了死锁。 趁着这个机会也好好了解了一下很少用到的递归锁。 所谓递归锁,就是在同一线程上该锁是可重入的,对于不同线程则相当于普通的互斥锁。 例如:有互斥量LOCK func A () { LOCK.lock(); B(); LOC转载 2014-08-15 17:04:30 · 7537 阅读 · 0 评论 -
解决使用pthread_create函数造成的内存泄露
首先来看一段程序:[cpp] view plaincopyprint?//test1.cc #include #include #include #include using namespace std; const int MAX_THREADS = 10000; void* thr转载 2014-10-22 12:39:02 · 733 阅读 · 0 评论