【发布时间】:2012-05-04 00:08:48
【问题描述】:
我在多线程服务器中将队列实现为链表。我想从另一个班级访问这个队列。两个类都在同一个包中。我尝试将此队列设为公共静态并通过 getter 访问它,但没有成功有人可以告诉我确切的问题是什么。
这是我的代码: 队列声明:
public static Queue<Request> q=new ConcurrentLinkedQueue<Request>();
public static void setQ(Queue<Request> q) {
Connection.q = q;
}
public static Queue<Request> getQ() {
return q;
}
访问队列:
Queue<Request> queue=new ConcurrentLinkedQueue<Request>();
queue=Connection.getQ();
在连接线程中为队列添加值
q.add(r);
【问题讨论】:
-
请贴出你代码的相关部分
-
您遇到的实际问题是什么?解释“没有成功”。是编译问题还是运行时问题?
-
注意在多线程程序中使用非线程安全队列。如果您还没有,请查看BlockingQueue,它可能会对您有所帮助。
-
如果您的问题已经得到解答,或者不再有效,请“打勾”以选择最合适的答案,以便所有人都知道问题已得到解决。谢谢。