public class ProQueue { // 先进先出的队列 private LinkedList queue =new LinkedList(); /*
* put方法入队,synchronized给方法加锁,在一个线程的执行时间内不允许别的线程访问 该方法,保证了数据的安全性
*/
public void put(Object obj) {
while(queue.size()==250){
try{
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
queue.addFirst(obj); } public synchronized Object get() {// 出队
while(queue.isEmpty()){
try{
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
//Object obj=queue.removeLast();
//obj=null;
return queue.removeLast();
}
public boolean isEmpty() {// 队列是否为空
return queue.isEmpty();
} public int getsize() {// 队列的大小
return queue.size();
}}这样实现队列,会不会导致内存泄露?谢谢哦
* put方法入队,synchronized给方法加锁,在一个线程的执行时间内不允许别的线程访问 该方法,保证了数据的安全性
*/
public void put(Object obj) {
while(queue.size()==250){
try{
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
queue.addFirst(obj); } public synchronized Object get() {// 出队
while(queue.isEmpty()){
try{
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
//Object obj=queue.removeLast();
//obj=null;
return queue.removeLast();
}
public boolean isEmpty() {// 队列是否为空
return queue.isEmpty();
} public int getsize() {// 队列的大小
return queue.size();
}}这样实现队列,会不会导致内存泄露?谢谢哦
解决方案 »
- 求解求解
- 新手用时两天编写 贪食蛇 ,发源代码求指教。
- 不显示删除回复显示所有回复显示星级回复显示得分回复 小弟刚开始接触EJB3.0,熟悉HQL(JPQL)的进来下,请教个问题
- 大侠帮着解决习题
- 请问生成静态页面的语言问题。
- 大家能否简单地告诉我Collections、Lists、Sets、Maps的区别吗?以及Vector、Hastalbe、Lists谢谢了!
- 请问怎样用javaScript刷新页面
- 怎样将一个空文件夹压缩?
- jdbc连接sqlserver的问题
- mybaties分页
- 100分 求一个Struts的 查询例子 (简单点的)
- 兄弟一直在漫无边际的海洋中摸索,太累了,希望有高手指点一二!
关于put()方法,我觉得你应该在队列满的情况下,给出溢出的返回提示,而不是在那里不停的循换。如果需要这么做最好把这个逻辑放到外面,而不是队列类中。