现在做一个socket的程序,发送方的速度远远大于接收处理的速度,所以想中间加一个链表之类的东西,起一个线程不断的收,加入链表,另外一个线程从链表中读数据
,处理完以后删掉,因为涉及到不同的线程对同一个变量的操作(想用stl的vector)
不知道有什么需要注意的地方,最好能讲详细一点,多谢了

解决方案 »

  1.   

    可以模仿操作系统中的管程机制。就是进程的同步和互斥,操作系统也提供了对应的API函数。
      

  2.   

    加一个锁就可以了Windows下用Mutex和CriticalSection都可以实现
      

  3.   

    就是说我在往vector里面增加值的时候和从vector读出,删除的时候都调用一下CriticalSection就可以了的意思吗
      

  4.   

    设定 队列两个 零界值 low  high,  当 队列中内容大于等于 high时 将写 线程 挂起 suspend
    当值小于等于low时 恢复写线程
      

  5.   

    然后 使用 线程同步机制 CriticalSection Mutex等等都可以