Re: [cpp] socket API 在多线程的环境里是不是线程安全的?

Yi Fan heavenstar at gmail.com
Sat May 6 18:20:48 CST 2006


第一种情况就是加一个互斥量来解决。

至于第二种情况,我现在不确定的是:这样的socket操作需不需要线程同步的机制?


在06-5-6,sky tiger <skytiger86 at gmail.com> 写道:
>
> 能不能用p、v操作之类的加锁?
>
> 在 06-5-6,Yi Fan<heavenstar at gmail.com> 写道:
> >
> > 以前写程序遇到的问题。
> >
> > 有2个线程,thread_A 和 thread_B,  还有4个套结字, socket_A ,socket_B,socket_C
> ,socket_D
> >
> > 在thread_A 中读这4个套结字( 就是调用receive() ), 同时在thread_B 中也读这4个套结字,
> >
> > 这样做估计会有问题,读到的数据可能有错,后来就用互斥量来同步一下。
> >
> >
> ---------------------------------------------------------------------------------------------------------------------------------------------------
> >
> >
> > 后来遇到一个问题,与这个类似,就是:
> >
> > 有2个线程,thread_A 和 thread_B,  还有4个套结字, socket_A ,socket_B,socket_C
> ,socket_D
> >
> > 在thread_A 中读这4个套结字( 就是调用receive() ), 同时在thread_B 中写这4个套结字(就是调用send())
> >
> > 这样做会不会有问题?读写数据会不会有出错的可能?
> >
> >
> > ( 关于这个问题,问过一些身边的人,其中有一个程序员说
> >
> > 读写操作会修改一些socket的成员变量和socket的全局变量,所以这种情况也要做同步。)
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > Cpp mailing list
> > Cpp at codingnow.com
> > http://codingnow.com/mailman/listinfo/cpp
> >
> >
>
> _______________________________________________
> Cpp mailing list
> Cpp at codingnow.com
> http://codingnow.com/mailman/listinfo/cpp
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20060506/836f562d/attachment.html


More information about the Cpp mailing list