BlockingQueue和List 有啥区别,BlockingQueue用在啥场景下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BlockingQueue和List 有啥区别,BlockingQueue用在啥场景下相关的知识,希望对你有一定的参考价值。

参考技术A queue的作用很多,比如说解耦。
举个比较常见的例子:
某电商有交易和邮件两套系统,当一个交易完成时,给用户发一封确认邮件。这里
交易系统和邮件系统显然是两个优先级的东西,交易系统要求很高的实时性,而邮件系统则不必,为了合理利用服务器资源,应当把这两套系统分离,合理的做法
是,交易完成时,交易系统生成一个发邮件的任务,丢到queue中,而邮件系统监听在queue的另一端,用一个相对较低的速度处理queue中的发邮件
任务。
当然,这里的queue一般是mq或者activemq之类的产品。
blockingqueue的作用本质上和他们类似。比如我们写个静态网页的爬虫,为了尽可能的高效率,应当把网络io和网站内容分析解耦,让更多的线程去处理较慢的网络io,把获取到的内容丢到queue中,用较少的线程处理速度较快的网页内容分析。
至于为什么有arraylist还要用blockingqueue,这和有array了为什么还要有arraylist一样,为了方便呗,不信你自己用arraylist封装个能保证fifo,能保证线程安全的东西出来看下。

以上是关于BlockingQueue和List 有啥区别,BlockingQueue用在啥场景下的主要内容,如果未能解决你的问题,请参考以下文章

java中 List 与Set 有啥区别?

python中的list和list[:]有啥区别?

List 和 ArrayList 有啥区别? [复制]

@+id/android:list 和 @+id/list 有啥区别

.cast() 和 List.from() 和 List.castFrom() 有啥区别

LIST.append(1) 和 LIST = LIST + [1] (Python) 有啥区别