一个可以在服务器中运行的简单队列,如果项目中需要用消息队列,且对消息队列的要求不高可以用:
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
/**
* 作为消息队列使用,目前只是在向数据库中写日志的时候使用
*
* @author cuihd
*
*/
public class BlockingQueue extends Thread {
private static BlockingQueue<String> queue = new LinkedBlockingQueue<String>();
static {
BlockingQueue uu = new BlockingQueue();
uu.setName("donggua队列");
uu.start();
}
/**
* 把消息插入到队列
* @param message
*/
public void produce(String message) {
try {
queue.offer(message);
System.out.println("put 进去了第: " + "个is");
} catch (Exception e) {
Logger.error("插入消息队列失败",e);
}
}
/**
* 从队列中取出消息并把消息插入到数据库
*/
public static void consume() {
while (true) {
try {
String message = queue.take();
System.out.println(message);
Thread.sleep(60000);
} catch (InterruptedException e) {
Logger.error(e);
}
}
}
@Override
public void run() {
consume();
}
public static void main(String[] args) {
BlockingQueue tt = new BlockingQueue();
tt.produce("11111");
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
tt.produce("2222");
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
tt.produce("333");
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
tt.produce("4444");
}
}
170万+

被折叠的 条评论
为什么被折叠?



