我想实现下面的功能:
1.开启一个线程,在软件运行阶段不停产生随机数据,存放在某个链表里。
2.另开一个线程,将这些数据从链表中读出,并转发给已经连接的另一个数据接收系统中,转发一次就将已经转发的数据从链表中删除.我应该怎么做呢? 采用哪种链表存储这些随机数比较好?如果实现第二个功能?对于两个线程共享一个数据链表,应该采用哪种方式?(临界?互斥?事件还是信号量?)

解决方案 »

  1.   

    我应该怎么做呢? 
    思想你还是想到了,两个线程,操作一个连表,加些控制!采用哪种链表存储这些随机数比较好?
    个人认为list比较合适,因为要反复地进行删除/插入操作!如果实现第二个功能?
    至于转发,你可以用消息传递值(不是指针),或者用映射文件存储内容(内容较多者适合),发送消息通知另外一个系统提取该内容。对于两个线程共享一个数据链表,应该采用哪种方式?(临界?互斥?事件还是信号量?)
    临界,属于用户方式调用,速度比较快!
    定义一个全局的临界变量,然后两个线程通过它来防止访问内存冲突!
      

  2.   

    同意楼上的 采用list很合适,CPtrList其他的关于互斥的,临界变量是必须的 不断更新临界变量的状态即可
      

  3.   

    luohualiushui(落花流水)+ handwolf(青松崖) ( ) 
    描述的很清晰了,俺也學習下,呵呵.