[开源]多线程~高级控制方案 有效解决线程丢失和高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 ***** 1111111111111111111111 找了好久了 666666666666666 6666666666666666 老哥 看看东西 RE: [开源]多线程~高级控制方案 有效解决线程丢失和高CPU占用 [修改]
方案 有效解决线程丢失和 学习学习学习学习学习学习学习学习学习学习 好东西 正是需要学习的