linux下多线程同步问题
先贴代码:
for(i=0;i<MAXSOCKNUM;i++)
{
if(FD_ISSET(client_socket[i],&fdset))
{
client_sock=client_socket[i];
printf("the client_sock is %d,the i is %d\n",client_sock,i);
pthread_create(&thread1,NULL,(void *)&operate,&client_sock);
sleep(1);
client_socket[i]=0;
}
}
这是我程序中的一部分,是这样,我希望程序执行到创建进程这一步时,将client_sock带入到operate()之后才执行主线程,即阻塞一下,但是我又不想等operate()全部执行完毕再执行下边,所以pthread_join()就不再适用了,于是我想出了一个sleep的方法,但是这个等待时间不好把握,时间太长,我的执行效率肯定越低,时间越短的话,如果系统有个什么扰动,很容易数据就会错位
请问大家有什么好的方法吗?
Lipili
11 years, 8 months ago