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() 不可用 不可用
相關文章
相關標籤/搜索