Jeb*_*bli 0 c# multithreading .net-2.0
我知道如何使用c#实现多线程.但我想知道它是如何工作的.
我很难理解这个概念.我想了解为什么我们选择多线程,何时使用它.
提前致谢.
shf*_*301 17
线程可能同时运行也可能不运行.在单处理器计算机上,一次只运行一个线程.在多处理器系统(多处理器,多核,超线程)上,多个线程可以同时运行,每个处理器一个线程.
操作系统调度程序确定线程何时运行.Windows是一种抢占式多任务系统.它将运行一个线程一段时间,称为时间片(在Windows上为10ms或15ms),停止线程,然后确定下一个要运行的线程,这可能是正在运行的线程.实际算法很复杂.
线程确实具有优先级,因此影响这一点,所有事情都相同,优先级较高的线程将获得比优先级较低的线程更多的时间.如果你没有在线程上手动设置优先级,那么它默认为"Normal priority"在一个简单的例子中,两个具有相同优先级的线程准备运行,然后两个线程将运行相同的时间,可能循环赛.
关于我们为什么要进行多线程,有两个基本原因:
多线程在一个操作不需要阻止另一个操作的环境中很有用.
这个例子的主要例子是后台进程不应该锁定主用户界面线程.
操作系统通常会决定谁可以做什么,什么时候做.如果一台计算机只有一个核心,那么除了上面列出的核心之外,多线程几乎没有什么好处.但是,随着更多核心的添加,可以同时执行更多操作.
但是,即使在单核系统中,多线程也可以促进非阻塞IO,这对于提高应用程序的响应能力非常重要.
归档时间: |
|
查看次数: |
1075 次 |
最近记录: |