java中,10个线程并发修改1个大数组(亿级别),用1个mutex怎么设计最高效安全?

1

不管什么语言,用多线程和1个mutex处理这样的数据是最蠢的想法。

  1. 应该避免这样的大数据出现,不要积压未处理数据,尽可能在数据量小时处理掉
  2. 如果避免不了大数据,就采用分层过滤的方式,用一个线程把数据整理分块为10个,然后把这10块分配给10个线程处理各自处理,甚至可以按1、2、4、8个块分别对应1、2、4、8个线程处理。分块只是在数组的下标进行划分。这样才是真正意义的使用多线程的优势,无锁操作

2

每个线程处理各自的下标范围就可以了,不需要互斥锁,当然了,不能是byte数组

3

可以看一下这个链接里的评论,我写的代码在那里

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章