【发布时间】:2012-03-08 10:25:50
【问题描述】:
我正在开发具有少量线程(每个都在其队列上工作)和并行任务(Parallel.For 或只是 Thread.StartNew)的应用程序。
我的问题是,在最新版本的线程中引入的 MS 线程组件(如线程池、任务等)是否知道我在新线程上执行操作时手动定义的其他线程。
例如:如果我有 4 个 cpu 和 1 个线程在队列上工作的 pc(线程并不总是工作,它使用重置事件等),并且我有 10 个并发操作(每个)在它的任务上运行。这是否意味着 3 个任务将与我的应用程序一起运行,而其他任务等待它们(任务)完成?当线程进入睡眠状态时会发生什么(任务操作是否会在线程所在的 cpu 上运行?如果是这样,当我的线程需要立即运行并且占用 cpu 时间的任务挂起它时会发生什么?这是否意味着我的线程也不会运行,或者在某些时候我会看到上下文切换?)
很多很多的问题...希望有人能耐心地给我一个答案:)
谢谢, 扎希
【问题讨论】:
标签: .net multithreading task-parallel-library