当前位置:   article > 正文

Java并发:阻塞队列_controller 如何使用java队列?

controller 如何使用java队列?

对于实际编程来说,应该尽可能远离底层。

    对于多线程的问题,可以通过使用一个或多个队列以优雅且安全的方式将其形式化。生产者线程想队列插入元素,消费者线程则取出它们。使用队列,可以安全地从一个线程想另一个线程传递数据。

    下面是使用阻塞队列的案例。 

  1. package com.hef.controller;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.util.Scanner;
  5. import java.util.concurrent.ArrayBlockingQueue;
  6. import java.util.concurrent.BlockingQueue;
  7. /**
  8. * 不需要显式的线程同步,在这个应用中,使用队列数据结构作为一种同步机制
  9. * 需求: 一个生成者线程递归读取目标下所有的文件; 开启多个消费者线程,每个搜索线程从队列中取出一个文件,打开它,打印所有包含关键字的行。
  10. * 然后取出下一个文件。使用一个技巧终止应用程序:当搜索线程取到虚拟对象的时候,将其放回并终止
  11. * @Date 2019/10/14
  12. * @Author lifei
  13. */
  14. public class BlockingQuqueTest {
  15. private static final int FILE_QUEUE_SIZE = 10;
  16. private static final int SEARCH_THREADS = 100;
  17. private static final File DUMMY = new File("");
  18. private static BlockingQueue<File> queue = new ArrayBlockingQueue<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/976160
推荐阅读
相关标签
  

闽ICP备14008679号