线程间同步  是为了 实现  程序的稳定 还是  为了数据的安全呢?
比如:我有 个两线程 程序,线程1 接收数据,主线程更新界面 显示, 我并不像其他软件那样 对数据完整性 有苛刻的要求, 这样我是否可以不做线程同步呢?

解决方案 »

  1.   

    我觉得不用同步吧把界面窗口的指针传递给接收数据的线程1,让线程1去更新界面显示界面窗口的成员都弄成public的,就行了
      

  2.   

    仙人指路:
    界面窗口的成员都弄成public的,就行了这是破坏封装性最好的开始
      

  3.   

    我认为有2种情况
    线程A,B一、
    如果B处理的事情 需要A有了结果才能继续的话,需要线程同步。二、
    如果A,B 会同时处理一个对象或则一个内存的话,为了安全性也需要同步。在实际开发中:
    如果是一个简单的共用对象,你可以不需要同步,例如:全局int i;A 不停的把 i的结果显示出来,B 不停的++i;即使你在i 中不停的--i 也没有事。另一个:
    我们以CSocket 和 CAsyncSocket 为例,CSocket是派生自CAsyncSocket的,CAsyncSocket是非堵,CSocket是堵,他们都不是线程安全的,如果在2条线程处理他们会出现什么问题?有趣的是单核运行的话可能24小时都没有异常,多核的话可能几分钟就异常了。其中又以CAsyncSocket为甚,CAsyncSocket几乎不能在多线程中使用,而CSocket在多线程中使用几乎没有问题(为什么这么说?因为MSDN说是非线程安全,而使用起来几乎没有遇到异常)