我有线程A 和线程B
线程A要频繁的向线程B抛送Msg 可能非常频繁 业务需求现在的做法是 在线程B有一个MsgList 线程A每次抛消息 就写入MsgList 当然这样要加锁
在线程B 就批量处理MsgList这样做当Msg越来越多时 效率会非常低下 甚至 有可能堵塞住各位有什么高效的解决办法啊。。

解决方案 »

  1.   

    线程a的任务是向MsgList里写信息,线程b是从MsgList里读信息,抛开你在线程能的处理,影响效率的就只有锁了
      

  2.   

    效率怎么会“底下”呢?而且“阻塞”又从何说起啊?我的一个网络通讯库,用的就是这样模式,效率很好的啊!线程A -》公共队列-》线程B简单的将就是线程A向公共队列的队尾插入消息,线程B从公共队列的队头获取消息,入队和出队中间加锁,效率很高
      

  3.   

    同步的方式也有很多种,2个线程时,关键段(Critical Section)的速度大概是互斥量(Mutex)的50倍,SRWLock比关键段更快一点。其它同步方式的效率也各有不同。