请问 队列写入内存 编程问题:小弟想实现 多线程与队列 的写数据,读数据。当tomcat 启动时启动一个线程去监听某个端口,将接受到的数据写入队列,
另一个线程负责将队列里的数据取出来,放入hashmap或其他更好的共享内存变量中,放入成功的话,要向监听的那个端口发送成功的消息。请问兄弟们,如何实现?

解决方案 »

  1.   

    socket编程倒可以做到,tomcat的业务我们可以操纵吗?
      

  2.   

    或许可以自己写一个监听器,然后在web.xml的listener属性里配置上喵~
      

  3.   

    你可以使用java.util.concurrent.ConcurrentLinkedQueue<E>,
    很好用,是线程安全的、、、
    不过,千万不要插入空值,插入的时候加个if()判断一下!!!!!
    我一开始的时候没判断空值的,结果乱了、、、
      

  4.   

    liuzhengkang
    ,你好,
    能不能说详细点啊。。帮我把代码写出来啊主要是把起线程把数据写入队列,再从队列读取数据放入内存。。或者是给点思路也行,全写出来是最好了帮帮忙啊
      

  5.   

    推荐用java.util.concurrent.ConcurrentHashMap写个单列来存储就好了,防止信息丢失。
      

  6.   

    java里的集合保存的东西都是在内存的啊!!java.util.concurrent.ConcurrentLinkedQueue 本身就是在内存里的,你直接启一个线程进队,一个线程出队,
    19楼说的java.util.concurrent.ConcurrentHashMap ,也可以啊,都是线程安全的,不过如果只是实现队列的话,只用ConcurrentLinkedQueue这个好了!
      

  7.   

    大哥,那有这样的啊,、、
    我很忙的啊,还有几个项目上头吹着呢、
    你直接百度、goolge啊,找到例子,还写不出来吗、、
      

  8.   

    前几天刚写了个用的是util.concurrent这个库,jdk1.4的,1.4以上版本可以用java.util.concurrent这个包
      

  9.   

    典型的“生产者-消费者”问题,用“生产者 消费者 java 线程”自己google吧