Java 并行化的一些总结

一直在用Java做工程,现在写一个专题 介绍一下并行化中的一些东西:


1)并行的最基本的就是和数据配合好,最好的 场景就是数据和计算同时进行,这个线程在进行数据处理的时候,哪一个线程就开始传输数据。这样最起码保证cpu或者硬盘不空着。


2)在使用多线程的时候,如果硬盘不是瓶颈,那么我们应该让各个线程每一次调度的时候处理的东西最大,比如,我们有8个核,我们要处理的数据有80w个,那么我们最好在最开始把数据分成8等份,然后每个线程就只处理他那一份的。线程之间的交流越少,reduce次数越少,则利用cpu效率最高。


3)传统的thread 这种,非常麻烦,而且需要手动的对我们的数据进行同步处理,和可能出问题,所以最好所有的东西都用类,比如Integer代替int等等


4)Java8的parallelStream()是一个大神器!!!!!!!


5)使用并行的数据结构,比如 ConcurrentHashMap

留下您的评论

回复列表:

By王炳宁 on April 24, 2017 | 类别 Java

关于本站