国内最专业的IT技术学习网

UI设计

当前位置:主页 > 亚博2018体育博彩 >

鸟瞰 Java 并发框架

发布时间:2019/07/18标签:   线程    点击量:

原标题:鸟瞰 Java 并发框架
1. 为甚么要写这篇文章几年前 NoSQL 开端风行的时间,像其余团队一样,咱们的团队也热中于使人高兴的新货色,而且打算调换一个利用顺序的数据库。然而,当深刻完成细节时,咱们想起了一名智者已经说过的话:“细节决议成败”。终极咱们认识到 NoSQL 不是处理全部成绩的银弹,而 NoSQL vs RDMS 的谜底是:“视情形而定”。相似地,客岁RxJava 和 Spring Reactor 如许的并发库参加了让人充斥豪情的语句,如异步非堵塞方式等。为了幸免再犯一样的过错,咱们实验评价诸如 ExecutorService、 RxJava、Disruptor 和 Akka 这些并发框架相互之间的差别,以及怎样断定各自框架的准确用法。本文顶用到的术语在这里有更具体的描写。2. 剖析并发框架的示例用例3. 疾速更新线程设置在开端比拟并发框架的之前,让咱们疾速温习一下怎样设置最好线程数以进步并行义务的机能。这个实践实用于全部框架,而且在全部框架中应用雷同的线程设置来器量机能。 关于内存义务,线程的数目大概即是存在最好机能的内核的数目,只管它能够依据各自处置器中的超线程特征停止一些变动。 比方,在8核呆板中,假如对利用顺序的每个恳求都必需在内存中并行履行4个义务,那末这台呆板上的负载应当坚持为 @2 req/sec,在 ThreadPool 中坚持8个线程。 关于 I/O 义务,ExecutorService 中设置的线程数应当取决于内部效劳的耽误。 与内存中的义务差别,I/O 义务中波及的线程将被堵塞,并处于等候状况,直到内部效劳呼应或超时。因而,当波及 I/O 义务线程被堵塞时,应当增添线程的数目,以处置来自并发恳求的额定负载。 I/O 义务的线程数应当以守旧的方法增添,由于处于运动状况的很多线程带来了高低文切换的本钱,这将影呼应用顺序的机能。为了幸免这类情形,应当依据 I/O 义务中波及的线程的等候时光按比例增添此呆板的线程确实切数目以及负载。 参考: http://baddotrobot.com/blog/2013/06/01/optimum-number-of-threads/4. 机能测试成果机能测试设置 GCP -> 处置器:Intel(R) Xeon(R) CPU @ 2.30GHz;架构:x86_64;CPU 内核:8个(留神:这些成果仅对该设置故意义,并不表现一个框架比另一个框架更好)。5. 应用履行器效劳并行化 IO 义务5.1 何时应用?假如一个利用顺序安排在多个节点上,而且每个节点的 req/sec 小于可用的中心数目,那末 ExecutorService 可用于并行化义务,更快地履行代码。5.2 甚么时间实用?假如一个利用顺序安排在多个节点上,而且每个节点的 req/sec 远远高于可用的中心数目,那末应用 ExecutorService 进一步并行化只会使情形变得更糟。当内部效劳耽误增添到 400ms 时,机能测试成果以下(恳求速度 @50 req/sec,8核)。

版权信息Copyright ? IT技术教程 版权所有??? ICP备案编号:鲁ICP备09013610号