channel的一大问题就是线程间的竞争。这个可以很耗时。
而且也不保证顺序。
像我上面写的那段,几乎没有线程间竞争的耗时。
【 在 eematlab (未辰) 的大作中提到: 】
: 标 题: Re: notify_one是如何保证了线程之间顺序不乱的?
: 发信站: 水木社区 (Tue Jun 2 16:53:12 2020), 站内
:
: 赞, 这个代码很清晰明暸
:
: 我觉得Golang里面的channel就挺好的
: 大家就是往里扔数据,回头再把结果拼起来,思维上比较清晰
: channel内部会自己做互斥
:
: 不过看别人的测试结果,这也是有代价,
: 自已加锁的话一般20us左右,而用channel的话,大约是70us (有些机器上会快些有些机器上会慢些)
:
:
: 【 在 here080 (hero080) 的大作中提到: 】
: : 异步程序就是容易出错。而且很多年轻程序员的智商也驾驭不了。
: : 如果有轻量级线程就容易多了,可以尽可能地写成同步程序。
: : 比如要读一个超大文件,分成N块多线程进行大量运算处理,处理结果再按顺序合成一处,可以这么写:
: : ...................
:
: --
: 木受繩則直,金就礪則利,君子博學而日參省乎己,則知明而行無過矣。
: 业精于勤,荒于嬉;行成于思,毁于随
:
: ※ 来源:·水木社区
http://newsmth.net·[FROM: 64.207.220.*]
--
FROM 76.126.252.*