#include
by cgp2001 - C/C++ - 2009-04-30 11:39:06 阅读(1780) 回复(2)
我正在编一个http proxy. 有些地方想不通. 主程序在每收到一个新的客户端的请求 都会建立一个线程去处理这个连接, 在处理连接的过程中,对于请求我用了select()设置了10秒的超时,当select返回值大于0时将建立一个线程处理这次请求,小于0时关闭连接.之所以新开一个线程是因为要实现pipelining. 这样就要求用mutex或是其他方式对client的socket进行同步,因为这些新开的线程在接受请求或是返回回复的使用socket的时候会有冲突. 我觉得好...
学习中,看到用户线程对共享内存的获得和释放,其中讲到mutex和锁: 例:线索在修改缓冲区以前,首先获得这个缓冲区的mutex,然后把这个缓冲区的锁访问类型设为独占方式。 问题:mutex(门叉)本身就是实现互斥访问,应该说得到mutex以后,别人已经不可能再访问这个缓冲区了,为什么还要加锁。 在书中还有许多地方讲到这种例子。究竟mutex和锁是什么关系?请老大们指教!!!
class myClass
{
public:
static myClass* getInstance();
bool find(const std::string& first,const std::string& second);
private:
pthread_mutex_t mymutex;
std::map
在一个多线程进程里面,有多个互斥的资源,如果都用pthread_mutex_t的pthread_mutex_lock来加解锁的话是不是作为一个整体来看。 比如资源A 和B,本来A B之间不用互斥,也就是不同线程可以并发执行A B,但是用pthread_mutex_lock加锁后如果一个线程锁了A,那么另一个线程执行B前想加锁就只能等到A解锁了。有办法能解决这种多种资源加锁的办法吗。
我有2个线程: 2个线程有一个公用的结构体 rtsp_client; 1个主线程,用于不停地从SOCKET接收媒体数据: 线程1: [code] pthread_mutex_t lock; while(1) { pthread_mutex_lock(&lock); recv_data_from_socket(...); pthread_mutex_unlock(&lock); } [/code] 一个主要是为按键反映设计的线程,当某个按键被按下时,线程2会使用到 公用的结构体:rtsp_client; 线程2: [code] int ret; ITI_Msg_t event; while(1) {...
应用的场合可以确定没有recursive,而且是快进快出。 “non-recursive的pthread_mutex_t”和“pthread_spinlock_t”,在性能上有区别吗? linux 2.6.9 kernel.
我写了一个线程池类,里面会开一组线程,一组信号量mutex,在析构函数中cancel掉线程,destroy所有的mutex。问题就在这里,调用pthread_mutex_destroy的时候经常返回的不是0,而是16,也就是说,destroy失败了。这是为什么?