在.NET 4中推出并行编程,不得其解:1.Task和Thread有什么区别?
或者在cpu分配上Task是不是所说的会将任务分在多个处理器上(或者多个电脑上),而Thread只是在一个cpu上。
2. .NET 4中并行编程是指什么将任务分配给多个cpu吗?如何实现?劳烦大师们详解!!!

解决方案 »

  1.   

    Task貌似只是另一种方式的THREAD并没说可以多核,
      

  2.   

    1.Task和Thread有什么区别?
    或者在cpu分配上Task是不是所说的会将任务分在多个处理器上(或者多个电脑上),而Thread只是在一个cpu上。错,Task是对Thread的封装,在SMP系统上,Thread就可以运行在多个CPU上。Task封装了Thread的细节,比如创建thread,调用、中止等等。2. .NET 4中并行编程是指什么将任务分配给多个cpu吗?如何实现?Task自己就可以调度,只要为Task指定委托即可。
      

  3.   

    Tasks 这类是抽象出线程功能..在后台使用ThreadPool.主要是方便对底层线程进行更多控制吧
      

  4.   

    那.net 4并行是指什么?       是算法还是架构或者设计方面的。
     目前的机器基本都是多核的。如何使应用程序指定多个cpu工作? 而不是由系统来指定分配?如某个应用程序有两个进程,一个核跑一个进程。
      

  5.   

    我觉得.net 4.0提供的并行计算组件目的是简化多线程编程的复杂度。
    但CPU不是你想控制就能控制的。程序实现多线程CPU就能够自己调度提高效率。并不是“并行”总比“串行”快的,到底怎样才能获得最大的效率,
    这又是设计的范畴,可能需要在多个典型的软硬件环境中进行对比测试,
    最终才能得到理想的方案。比如:当要处理的数据量很大,或者要执行的数据处理任务繁重,
    并且这些任务本身就可以分解为互不相关的子任务时,使用并行计算是合适的。PS:线程和进程的概念lz貌似有点混哦。
      

  6.   

    本身多进程在多CPU上就是并发的。你可以在任务管理器里面为特定的程序指定在特定的CPU上调度。
      

  7.   

    我凌乱了,如果一个应用程序如果有多个进程,那么这几个进程是不是在一个cpu上?
      

  8.   

    一个程序多个进程?存在这样的情况么???先学习下操作系统吧不然都没法讲进程的调度是OS的事情,OS调度进程的目标是系统资源的最优化。事实上在哪个CPU上跑,取决于很多因素,比如局部存储器(NUMA架构),比如逻辑处理器依赖(HT处理器系统下调度给不同的物理处理器性能要高于调度给同一个物理处理器的两个逻辑处理器),比如进程亲缘性,等等。
      

  9.   

    当然,你实在要这么称呼也拿你没办法。但是一般来说进程就是程序执行的实例。按照你的观点,你用开始菜单或者双击桌面图标打开各种软件,本质上都是explorer的子进程。因此所有的软件都是explorer.exe的一部分。
      

  10.   

    讨论这些偏题了给你看一个几天前我回的帖子,用到了并行语法:http://topic.csdn.net/u/20110503/12/7a4f99f4-fc61-4b5b-a159-c09b82d690e2.html