多线程我一知半解比较捆饶的是:什么情况下要用,而且用了后效果很突出。
什么情况下可用可不用,用了后效果不是很明显。比如:一个串口程序
串口下连接了20台机器,软件进行数据收集与翻译。
(我都是顺序完成的:100毫秒收集1号机器数据,收集后翻译并在软件上呈现相应图形,然后过100毫秒收集2号机器数据,以此类推)请问,我有必要使用多线程吗?

解决方案 »

  1.   

    使用多线程的时机:系统的运行瓶颈在某种慢速资源,而不是CPU。典型的慢速资源有,磁盘文件,网络等。你的情况很适合使用多线程!
      

  2.   

    我倒是觉得楼主的问题,适合采用多线程,因为在接收这个过程当中是不使用CPU的,而在翻译和绘制图形的过程当中是不占用串口资源的。比较建议的是针对串口的个数各开立一个线程(如果只有一个串口则只须一个线程),翻译和绘制图形可以采用另外一个单独的线程。
      

  3.   

    我觉得楼主的程序是不适合用多线程的。
    是否适合用多线程,就要睇一下你的任务是否可以并行操作,并且操作之间有没有影响。就像楼主的程序,用多个线程去读取相关资料,然后再显示出来是可以的。
    但是楼主要搞清楚一点的是多线程操作要睇一下你的CPU是否为多核,是否支持多线程操作,如果唔是,那么就没有发挥出多线程的优势,如果你的CPU是单核的,反而会降低效率,因为CPU是分时操作的,你多个线程,都只不过是在不同时间段内工作,并没有并行操作,你的程序珲要管理多个线程之间的状态。