完成端口中第四个参数NumberOfConcurrentThreads,指的是同时允许执行的线程数量。若将该参数设为0,表明系统内安装了多少个处理器,便允许同时运行多少个线程!那么如果我的系统内只有一个处理器,程序中是否一直只有一个线程在运行?如果我在工作线程中创建了多个线程,是否可以同时运行?   

解决方案 »

  1.   

    NumberOfConcurrentThreads指的是并发线程数
    如果你的CPU是双核的,那一般这个并发线程数就是2,
    工作者线程的数量一般是CPU*2(这个数量可以自己确定,只要不是大到可怕就行),
    工作者线程数量和并发线程数量不是一回事,
    并发工作的线程肯定是工作者线程,但是工作者线程在同一时间内不是都在运行(OS中关于线程调度的内容),
    只有在一个运行的线程处于等待中(或是慢速IO,或是同步信号等),其他的工作者线程才会顶替它工作,这
    也就是为什么要启动的工作者线程数要大于CPU数的原因,为了最大程度的利用CPU