1
不管什么语言,用多线程和1个mutex处理这样的数据是最蠢的想法。
- 应该避免这样的大数据出现,不要积压未处理数据,尽可能在数据量小时处理掉
- 如果避免不了大数据,就采用分层过滤的方式,用一个线程把数据整理分块为10个,然后把这10块分配给10个线程处理各自处理,甚至可以按1、2、4、8个块分别对应1、2、4、8个线程处理。分块只是在数组的下标进行划分。这样才是真正意义的使用多线程的优势,无锁操作
2
每个线程处理各自的下标范围就可以了,不需要互斥锁,当然了,不能是byte数组
3
可以看一下这个链接里的评论,我写的代码在那里