我要用线程去扫描若干个设备的实时状态!给定扫描全部设备的数量,给定扫描全部设备所需时间,需求得出:需要开多少个线程!谢谢

解决方案 »

  1.   

    你想要全部设备的状态?其实有些设备状态应该可以被设成默认,然后过滤掉,比如你只想要得到开放的设备等等。线程应该尽量减少,你再怎么样,他也是一个cpu,怎么可能做到真正的并发呢?而且过多的线程将会大大的扯慢你的扫描速度的。
    大体考虑就是线程池化,然后弄些过滤条件,有些设备状态能默认就默认。
      

  2.   

    假设有10个设备,我需要1秒内扫描完!就开10个线程同时进行  假设有10个设备,我需要2秒内扫描完!就开5个线程同时进行   
    -------------------------------------------------------
    线程个数和时间并不成比例,假设有10个设备,需要1秒内完成,开10个线程同时进行,就要求每个线程扫描的每个设备的时间小于1秒,否则是执行不完的,应为它并不是真正的并行,除非用多cpu的计算机,另外,并不是线程越多越快,当线程大于某个值时,其执行速度反而下降,你要设计这样一个算法就需要考虑以上这些因素了