清淡小女子 发表于 2013-2-2 08:59:09

[开源]多线程~高级控制方案 有效解决线程丢失和高CPU占用

首先,我们不得不承认,易程序员对编程的结构理念和代码优化方面的能力特别的差,从而横生出易语言BUG以外的BUG! 线程的概念,比如你家搬家,1个人搬要10小时,10个人搬只需1小时吗?显然要超过1小时,因为人一多得先安排谁先谁后谁搬啥不然就得堵,这叫调度...还要受你家走廊、楼道、电梯等的限制...假如来100个人,显然直接就堵死了,搬不了了...

所以不是越多越好。首先要明白多线程的目的,很多时候人们并不是一味的为了执行效率,更多的是为了解决主程序没有反应。如此看来,那么线程的作用显然很明显是为了让硬件资源充分发挥,而不为了突破瓶颈!然而瓶颈,其实是永远突破不了的!再举个例子:假设CPU为4核、内存4G的环境下,就算你开1万个线程去读写硬盘你的CPU也永远不会100%占用,这是因为你的瓶颈在于硬盘响应速度!但是,如果你是用来做数据运算的话,只要量大区区几个线程也会100%CPU占用。再者,如果你的CPU是4核心,而内存只有512MB,哪么不论你开多少个线程做多少运算,CPU永远都不用100%占用,因为这时,关键瓶颈在于内存!!!当我写网络通信时,瓶颈可能就网络延时了。所以,了解瓶颈所在是非常必要的!

在C时代,CPU*2+2是多线程控制的经典公式,虽然这个公式如今早已过时,不再通用,但那合理调度的理念却永不过时,依然非常必要……

说了这么多,只想告诉大家,易语言的多线程本身并没有问题,只是你还没有真正的学会怎么管理它!要知道,就算在C++中,你毫无管制的一次性启动数万个线程结果还是一样会100%CPU占用、卡死、丢失线程等!若要绝不出现以上现象,除非你的电脑是超级神机!

易语言入门很容易,至于精通,多数易友还要好加练习……
**** Hidden Message *****

zxcvqr 发表于 2018-5-14 19:31:41

1111111111111111111111

Fan_Nao 发表于 2018-5-20 20:20:50

找了好久了

请叫我文哥 发表于 2018-5-25 13:28:43

666666666666666

3357dou 发表于 2018-6-1 19:04:28

6666666666666666

无无无 发表于 2018-6-2 20:16:24

老哥 看看东西

18734482604 发表于 2018-6-6 20:29:47

RE: [开源]多线程~高级控制方案 有效解决线程丢失和高CPU占用 [修改]

yy237754 发表于 2018-6-22 12:54:02

方案 有效解决线程丢失和

avgirl 发表于 2018-6-22 15:56:51

学习学习学习学习学习学习学习学习学习学习

love373382328 发表于 2018-6-23 14:07:24

好东西 正是需要学习的
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: [开源]多线程~高级控制方案 有效解决线程丢失和高CPU占用