网站域名备案主机名,电话营销外包公司,百度联盟广告收益,网站媒体给房开做内容推广同步队列超出长度时#xff0c;不同的返回形式可以分为以下四种。
会抛异常不会抛异常#xff0c;有返回值死等#xff0c;直到可以插入值或者取到值设置等待超时时间添加方法add()offfer()put()offer(E e,long timeout, TimeUnit unit)删除方法remove()poll()take()poll(l… 同步队列超出长度时不同的返回形式可以分为以下四种。
会抛异常不会抛异常有返回值死等直到可以插入值或者取到值设置等待超时时间添加方法add()offfer()put()offer(E e,long timeout, TimeUnit unit)删除方法remove()poll()take()poll(long timeout, TimeUnit unit)add() remove()
add()方法没有返回值remove()删除队列元素并返回。
//创建一个长度为3的队列
ArrayBlockingQueueString queue new ArrayBlockingQueueString(3);
queue.add(a);
queue.add(b);
queue.add(c);//存放的元素个数超过队列长度时抛出异常
//java.lang.IllegalStateException: Queue full
//queue.add(d);System.out.println(queue.remove());
System.out.println(queue.remove());
System.out.println(queue.remove());//取出队列元素为空时抛出异常java.util.NoSuchElementException
//System.out.println(queue.remove());
offer() pull()
offer()存储成功时返回true,失败返回falsepull()取出元素队列为空时返回null
//创建一个长度为3的队列
ArrayBlockingQueueString queue new ArrayBlockingQueueString(3);
System.out.println(queue.offer(a));
System.out.println(queue.offer(b));
System.out.println(queue.offer(c));//存放的元素个数超过队列长度时返回false
System.out.println(queue.offer(d));System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());//队列为空时返回null
System.out.println(queue.poll());
put() take()
put()存放元素队列满时将无限期等待直到有空位take()取出元素队列为空时将无限期等待直到取到
//创建一个长度为3的队列
ArrayBlockingQueueString queue new ArrayBlockingQueueString(3);
queue.put(a);
queue.put(b);
queue.put(c);
//没有位置时将阻塞无限期等待
//queue.put(d);System.out.println(queue.take());
System.out.println(queue.take());
System.out.println(queue.take());
//队列为空时将阻塞无限期等待
//System.out.println(queue.take());
offer(E e,long timeout, TimeUnit unit) pull(long timeout, TimeUnit unit)
offer()中e为要存放的元素timeout为等待超时时间unit为等待超时时间单位天、时、分、秒、毫秒pull()中timeout、unit与offer()意思一样
//创建一个长度为3的队列
ArrayBlockingQueueString queue new ArrayBlockingQueueString(3);
System.out.println(queue.offer(a));
System.out.println(queue.offer(b));
System.out.println(queue.offer(c));//存放的元素个数超过队列长度时等待3秒还不能存返回false
System.out.println(queue.offer(d, 3, TimeUnit.SECONDS));System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());队列为空时,等待3秒还为空则返回null
System.out.println(queue.poll(3,TimeUnit.SECONDS));