ChinaUnix.net
相关文章推荐:

多线程互锁问题

开发一个server 共有三个client 连上来 分别提供3个port 现在的做法是 打算用一个主线程来跑住业务逻辑 利用共享的fd在主线程做数据收发 子线程做socket连接监控。 将sockid sockfd 以及公共数据(ip,port信息等)全部放在主线程顶部 做全局变量共享 socket连接监控: 在子线程中接受一个sockfd之后,进入for,将子线程阻塞在 accept(...)处, client重连之后 直接覆盖上个fd,实现断线重连 现在问题是: 如果在子线程中全部使用...

by senic - C/C++ - 2008-08-12 11:52:12 阅读(1452) 回复(2)

相关讨论

线程共同执行一个任务..每个线程都有一个指向任务的指针. 当任务完成时(只有线程自己才知道任务执行完毕).线程要释放掉任务所占内存, 怎么样解决线程delete 同一块内存.

by cookis - C/C++ - 2007-03-29 23:02:54 阅读(1710) 回复(10)

我使用了两个线程,程序开始执行正常,执行几次,出现程序Segmentation Fault (core dumped)错误,之后等会,再执行,程序又执行正确,大家看看这个是内存溢出还是线程问题? 好像找到问题了,我编写了一个动态库,调用测试程序中零时分配的数组变量出现的问题,如果在动态库里面分配一个全局数组变量好像就没有这个问题,大家看看这是什么原因呢? 另外,在线程的执行函数里面写下面的线程等待语句无效? pthread_join(th...

by arenxl - C/C++ - 2007-03-27 15:39:32 阅读(1080) 回复(4)

class myClass : public ACE_Event_Handler { public: //回调函数 int handle_input(ACE_HANDLE) { m_sockfd.recv(buffer,1024,remoteAddr); } ACE_SOCK_Dgram m_sockfd; }; 这个是ACE写的代码,用来监听UDP端口,m_sockfd是用来接收数据的类似SOCKET的东西。 handle_input是回调函数,当有数据到达是被自动调用,好象是在一个新的线程执行的。 我的问题是 m_sockfd.recv(buffer,1024,remoteAddr); 这句会不会有问题,因...

by myluorui - C/C++ - 2008-04-02 15:04:25 阅读(1930) 回复(9)

void CreateCppiDay(void *argv[]) { if(pthread_mutex_lock(&mutex) != 0) exit(1); memset(caCntday, 0x00, sizeof(caCntday)); memset(caFlag, 0x00, sizeof(caFlag)); printf("%s\n",argv[0]); if(pthread_mutex_unlock(&mutex) != 0) exit(1); exit(0); } main() { int i=0; char caPara[30]; for(i=0;i<3;i++) { memset(caPara,0x00,sizeof(caPara)); sprintf(caPara,"%s|%d|","20060116"...

by wxrwin - 程序开发 - 2006-01-17 11:43:14 阅读(684) 回复(2)

线程是属于语言级别还是属于操作系统级别? 标准C++中没有提供对线程的支持,而LINUX环境下GCC则提供了API接口。如pthread.h. 故有此疑惑。

by nbaloverme - C/C++ - 2005-12-19 11:25:40 阅读(696) 回复(0)

假设在一个线程里要运行函数func1();func2(); 通过怎样的设置能使得该线程在运行func1()时不切换到别的线程,要此函数运行结束才可切换到别的线程

by fangshi - C/C++ - 2005-11-11 14:39:08 阅读(822) 回复(1)

代码大概如下(代码可能有问题,只是表达一个意思) char *pp;//全局变量 thread_1: { ... char *ptr=(char *)malloc(1024); pp=ptr; ... return NULL; } thread_2: { ... char p2[1024]; strcpy(p2,pp); free(pp); .... return NULL; } 这种方法中在thread_1退出的时候他所分配的1024内存会不会被释放掉(我没有在thread_1中free)?我的想法是:因为线程之间是共享heap区的,是不是...

by afeiraul - C/C++ - 2005-04-23 14:37:03 阅读(1478) 回复(11)

pthread_attr_init(&attr); pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS); pthread_attr_setstacksize(&attr,512); if(pthread_create(&tid,&attr, func, (void *)arg)) { perror("error pthread_create"); } 我都这样子了,可线程开到307之后就报 error pthread_create: Cannot allocate memory这个错误 我用 ulimit -a 查看 core file size (blocks, -c) 0 data seg size (kbytes, -d) u...

by jd808 - C/C++ - 2009-08-04 16:24:15 阅读(984) 回复(0)

我的程序主程序中用g_timeout_add来定期更新UI,当有一个新任务的时候,创建一个新线程来处理,通讯获得的数据会自动修改, 定时更新UI的主线程会取出那些数据更新到UI上,但是我发现,我的程序在运行过程中(通讯线程没有完成所有工作之前)UI不会被更新,完成才更新.请问为什么,我是想显示进度的.

by napleon - GUI编程 - 2009-06-02 19:57:03 阅读(3998) 回复(5)

请各位帮帮忙 我用2个线程读2个文件到内存中,如果只创建一个线程,能够正确运行。但是创建两个就报错Segmentation fault, 请问是哪里的问题?谢谢。 线程函数如下: void* read_seq(void* reads_file) { vecbasevector* tmp_reads = new vecbasevector; String* filename = (String*) reads_file; LoadReads(*tmp_reads, *filename); pthread_exit((void*)tmp_reads); }

by owomo - C/C++ - 2009-03-30 09:07:24 阅读(1560) 回复(9)