|
楼主 |
发表于 2013-5-28 19:35:14
|
显示全部楼层
广东省广州市
‘一叶知秋 发表于 2013-5-28 19:17
嗯 你把你这个帖子的主要问题说下 我看我能帮到你不
描述起来也挺抽象的,就将就理解吧,假设启动5条线程,线程全开,同一时间五条线程都在跑,但是当所有线程跑的次数相加达到一定量的时候 符合拨号的条件,那我应该怎么去拨号呢?按照正常单线程的方法的话 那是肯定不行的 因为多条线程所处的状态是不可能一样的(有的才开始任务 有的已经结束了此次任务),就这样拨号,中间肯定是会丢失数据的,所以我需要当一条线程满足条件的时候 就开始等待,并且不再继续执行,等待其他线程也完成同等任务的时候,开始拨号,之前我用的一个很笨的方法是 启动线程的时候就启动一个时钟,时钟每500毫秒监控一遍 当五条线程都处于 等待拨号状态的时候,开始启动拨号,另一边,五条线程为了不让他们继续任务,我设置了一个判断循环,也就是说 在拨号的过程中 五条线程是一直在循环的 而且为了提高敏捷性 中间的延时还特别短,当拨号完成,判断条件不符,退出循环继续任务,-------这个就是之前的笨方法,程序能跑,但时不时会出现内存不能“read” 找遍代码,能出错的地方也就是这个循环了,如果真是的话 ,我希望能有一个思路去替换它,使得软件正常运行 |
|