如何在阻塞队列中添加multipl对象?

时间:2015-10-17 10:14:16

标签: java android

BlockingQueue<ServiceSync>bq=new LinkedBlockingDeque<ServiceSync>();

ServiceSync s=new ServiceSync();
s.setService(OperationsConst.CODE, commonUtil.DOWNLOAD, true,null );    
bq.add(s);
//s=new ServiceSync();
s.setService(OperationsConst.LOGIN, commonUtil.DOWNLOAD, true,null );           
bq.add(s);          
tmp=new TempThread(bq, context);
tmp.setBlockingQueue(bq);

在这里,我添加了2个对象,但每次只在队列中添加第二个对象。

2 个答案:

答案 0 :(得分:0)

目前您正在向队列添加s,更改您添加的值并第二次添加。因此,您最终会得到一个具有相同对象的队列两次。取消注释s=new ServiceSync(),或者(更好)创建类型为ServiceSync的新变量,并将其添加到队列中。

答案 1 :(得分:0)

更改值后,您使用了相同的引用。请创建另一个ServiceSync对象,设置所需的值并添加到队列中,如下所示。

BlockingQueue<ServiceSync> bq = new LinkedBlockingDeque<ServiceSync>();

ServiceSync s1 = new ServiceSync();
s1.setService(OperationsConst.CODE, commonUtil.DOWNLOAD, true, null);
bq.add(s1);

ServiceSync s2 = new ServiceSync();
s2.setService(OperationsConst.LOGIN, commonUtil.DOWNLOAD, true, null);
bq.add(s2);