小弟最近在看线程的问题,有一个想法不太明白,请各位详解。
1 声明一个公共数组(大小100000),对其加锁,然后用多个线程(假设是10个)处理公共数组的数据。
2 创建10个线程,然后将数组平分成10个数组(每个数组大小10000),每个线程处理各自的子数组。
请问这两种做法有什么区别?哪个好?
1 声明一个公共数组(大小100000),对其加锁,然后用多个线程(假设是10个)处理公共数组的数据。
2 创建10个线程,然后将数组平分成10个数组(每个数组大小10000),每个线程处理各自的子数组。
请问这两种做法有什么区别?哪个好?
解决方案 »
- delphi ADODataSet 显示字段包含内容
- 很久没来了,不知各位D友的工资是否涨了些?散分200特此庆祝!!!
- 请问: “cg1120(代码最优化-§惟坚韧者始能遂其志§)”,“jinjazz(近身剪(N-P攻略)) ”两位高手:
- 如何判断一个对象是否创建?
- mscomm串口通信
- 一个关于CHART的问题,在线等待!非常谢谢!
- 寻求一个方法!(先100,来者有分,提供方法者再加分)
- 一个控件始终装不上,怎么办,急急急!!!!,在线等待
- 急急急,100拱手相送,我做了一个activex form在给客户安装时我遇到了一个问题,急死我了,高手帮忙
- 百分相送!哪位会将结果集生成Excel文件?
- 有什么函数可以将输入的字符串'A4'得到DMPAPER_A4 ?
- delphi 如何检测网上邻居的共享目录是否存在或是否有权限?
2 创建10个线程,然后将数组平分成10个数组(每个数组大小10000),每个线程处理各自的子数组。
请问这两种做法有什么区别?哪个好?
-------------------------------------------------------------------------------------------
例: 1000个医院就诊号(有先后次序), 10个挂号员
怎么分断合理? 前100个号给1号挂号员? 答案:否定
假如初期平均分配合理, 某个挂号员偷懒不放号咋办? 答案:否定多线程能保证1000个号顺序高效的放出:
1000个号放一起, 同一时间点只能一个挂号员占一个号, 办理完毕(询问, 打印等流程)后, 再去排队拿号
第二种情况:10个线程可以同时进行,分别处理10个子数组。
个人认为,第二种情况效率会高。