线程实现observer接口,把改变通知相应线程

解决方案 »

  1.   

    谢谢你们的回答!
    我还是不大明白怎样把d_thread处理的消息通知这么多线程中发此消息的线程(某个c_thread),消息有唯一的系列号。因为c_thread把其收到的消息放入表中后就不管。由d_thread负责去处理,然后把处理结果告知c_thread.
      

  2.   

    记录下每一个c_thread连接,然后就可以把处理结果告知c_thread了。
      

  3.   

    这应该不是线程同步的问题,还是线程之间通信的问题!
    因为c_thread和d_thread这两个线程只有d_thread关系到数据的处理。
    我这里的关键是怎样才能把处理的结果通过某条途径去通知发送这条消息
    的线程。
      

  4.   

    java 编程思想好像说了,查一下吧
      

  5.   

    pzl686(阿虎)说得对,在程序中我是用一张表来记录和服务器连接的所有短信网关,也就是记录了每一个连接(因为一个短信网关只有一个连接)。但问题还是上面我说的。怎样在d_thread通过某种机制去找到发此条消息的线程,希望高手给我一个类似的式范程序,谢谢!!!
      

  6.   

    线程同步和线程通信几乎是同一个问题,c_thread把数据交给d_thread后就调用d_thread.wait(),d_thread处理完就notify()唤醒c_thread,希望我的信息有用:-)
      

  7.   

    Rayking(雷廷)谢谢你!
    不过号像你没有理解我的意思!这里c_thread一旦生成后,它就会不断地把收到的消息放进数据库表中,它再也不管,所以,d_thread是不能调用其wait方法的,这样的线程很多!问题就是我怎样去找到这样一个线程(系统中有相关的连接记录),我现在处理好的消息就是它发送的。希望能给我一个类似的范例。谢谢!
    我等!!!!!!
      

  8.   

    这里c_thread一旦生成后,它就会不断地把收到的消息放进数据库表中,它再也不管,,,,,,,我想,既然他不管了,那么总要留下来点什么吧,比如地址什么的(保存在数据库中?),d_thread处理完后就可以按照c_thread的地址给他发个消息了,然后才结束。不知道可行否?
      

  9.   

    既然前后两个c_thread不是同一个实例,为什么不用d_thread生成后一个反馈的线程?
      

  10.   

    既然前后的c_thread不是同一个线程,为甚么不用d_thread打开后一个处理线程呢
      

  11.   

    我看不用找到那个发送线程,完全可以新建一个线程负责发给客户端,只要几下客户端的socket连接就可以了