BlockingQueue

如下是我写的简单例子:spa

值得深思的4段代码,第一段曾经引发过很重大的事故。这些都是我简化的代码。.net

//        1.
//       BlockingQueue queue = new LinkedBlockingQueue(5);
//       for(int i =0;i<20;i++){
//           queue.put(i);
//           System.out.println(i);
//
//       }
//        System.out.println("阻塞了主线程");
//       new Thread(()->{
//           for(int i =0;i<20;i++){
//               try {
//                   System.out.println(queue.take());
//               } catch (InterruptedException e) {
//                   e.printStackTrace();
//               }
//           }
//       });
//        2.
//        BlockingQueue queue = new LinkedBlockingQueue(5);
//       for(int i =0;i<20;i++){
//           queue.put(i);
//
//       }
//        for(int i =0;i<20;i++){
//            System.out.println(queue.take());
//        }

//                3.
//       BlockingQueue queue = new LinkedBlockingQueue(5);
//       for(int i =0;i<20;i++){
//           queue.put(i);
//           System.out.println(queue.offer(i));
//
//       }
        
        
//       4.
//       BlockingQueue queue = new LinkedBlockingQueue(25);
//       for(int i =0;i<20;i++){
//           queue.put(i);
//
//       }
//        for(int i =0;i<20;i++){
//            System.out.println(queue.take());
//        }
  抛出异常 特殊值 阻塞 超时
插入 add(e) offer(e) put(e) offer(e, time, unit)
移除 remove() poll() take() poll(time, unit)
检查 element() peek() 不可用 不可用
相关文章
相关标签/搜索