多线程间切换周期,该怎么处理

多线程间切换周期
硬件平台: Win7 系统 I5处理器  4G内存
软件平台: VS2010   C#  桌面应用程序


   A:     最近做一项目,对实时性要求有点高。在项目应用程序中,开了6个线程,但总感觉线程间切换的实时性偏低。


   B:有把线程及进程的优先等级调高一个级别,但效果不明显。


  现求助各位:  1: 怎样提高线程的实时性,缩短“时间片”?

          2: 正常情况下线程间切换周期大概多长时间?
 
          3: 相关资料介绍?
 
 

    谢谢。

------解决方案--------------------
回答你后一个问题:“正常情况下线程间切换周期大概多长时间?”

这又无数的资料。在很多年以前,windows的桌面系统默认地“抢先式线程调度”机制,每隔几十毫秒(不超过50毫秒)就切换一次线程。现在的windows系统只可能缩短,应该不会延长。

你的问题应该是程序设计问题,不是线程切换周期长短的问题。


------解决方案--------------------
“线程间切换的实时性”这个概念不对头。
现在都有4个CPU了,理论上多个线程是可以并发运行的。

你要先查是哪个线程响应速度不够

------解决方案--------------------
在现在使用的Windows系统来说,你可以认为操作系统切换线程的时间 片是:15MS
但是记住,Windows本身是一个抢占式的操作系统.
------解决方案--------------------
抓取图像 分析图像 写入分析结果各一个线程

你这几个线程间有执行顺序依赖关系,需要线程同步
所以多线程根本没意义.
------解决方案--------------------
只能回答第三个问题:《CLR via C#》 
------解决方案--------------------
引用:
Quote: 引用:

没看懂。也许是不知道你的程序到底干什么。

1. 一个进程总是开“6个线程”,这是干什么呢?一个进程应该随着需要而使用线程。可能一瞬间需要使用30个线程,可能一瞬间只需要1个子线程,可能一段时间内根本不使用任何子线程(等待事件触发嘛)。怎么会是“循环、阻塞、死等”什么东西呢?如果你在那里“循环、阻塞、死等”,那么我相信就凭你的这个算法,真正有任务时也不可能有足够的并发能力去处理,可能因为阻塞而变慢。
2. 谁跟你说过线程的目的是“提高线程的实时性”?多线程处理,那么每一个任务单独看,肯定比顺序执行时要慢了许多。怎么可能“提高”呢?

线程的目的到底是为什么,你了解过吗?



不好意思,没表达清楚:
  
   A:  我是写一自动化设备控制程序+视觉处理(2个相机)

   B: 控制设备运行一个线程,抓取图像 分析图像 写入分析结果各一个线程

   C: 主要是有一个线程扫描IO口状态,当外部状态发生变化时,程度能即时捕获状态(硬件时钟扫描周期能满足),主要是想表达这个意思。

   谢谢


你是不是想抓图的数据读入的同时进行分析扫描,分析扫描同步写入分析
------解决方案--------------------
这个东西得看你的程序了逻辑:
http://www.cnblogs.com/c6000/archive/2012/10/11/2720611.html
这个可以 帮你优化线程
------解决方案--------------------
线程多并不代表执行速度快,效率高。
主要还是看你的设计和业务