您的位置:首页 > 编程语言

.NET多线程编程(10)——多线程的基础概念

2009-09-18 23:34 176 查看
  什么是进程?
  当个开始运行时它就是个进程进程包括运行中和所使用到内存和系统资源
  而个进程又是由多个线程所组成
  什么是线程?
  线程是中个执行流每个线程都有自己专有寄存器(栈指针、计数器等)但代码区是共享即区别线程可以执行同样
  什么是多线程?
  多线程是指中包含多个执行流即在个中可以同时运行多个区别线程来执行区别任务也就是说允许单个创建多个并行执行线程来完成各自任务
  多线程好处:
  可以提高CPU利用率在多线程中个线程必须等待时候CPU可以运行其它线程而不是等待这样就大大提高了效率
  多线程不利方面:
  线程也是所以线程需要占用内存线程越多占用内存也越多;
  多线程需要协调和管理所以需要CPU时间跟踪线程;
  线程的间对共享资源访问会相互影响必须解决竞用共享资源问题;
  线程太多会导致控制太复杂最终可能造成很多Bug;
  接下来将对C#编程中多线程机制进行探讨为了省去创建GUI那些繁琐步骤更清晰地逼近线程本质接下来所有都是控制台最后Console.ReadLine是为了使中途停下来以便看清楚执行过程中输出
  任何在执行时至少有个主线程
  直观印象线程举例:
//Thread.cs
using;
using.Threading;
ThreadTest
{
  RunIt
  {
    [STAThread]
    voidMain(args)
    {
      Thread.CurrentThread.Name="Thread";//给当前线程起名为"Thread"
      
Console.WriteLine(Thread.CurrentThread.Name+"'Status:"+Thread.CurrentThread.ThreadState);
      Console.ReadLine;
    }
  }
}
  输出如下:
   Thread's Status:Running
  在这里我们通过Thread类静态属性CurrentThread获取了当前执行线程对其Name属性赋值“Thread”最后还输出了它当前状态(ThreadState)
  所谓静态属性就是这个类所有对象所公有属性不管你创建了多少个这个类例子但是类静态属性在内存中只有个很容易理解CurrentThread为什么是静态——虽然有多个线程同时存在但是在某个时刻CPU只能执行其中

  在头部我们使用了如下命名空间:
  using ;
  using .Threading;
  在.net framework library中所有和多线程机制应用相关类都是放在.Threading命名空间中如果你想在你应用中使用多线程就必须包含这个类
  我们通过其中提供Thread类来创建和控制线程ThreadPool类用于管理线程池等
  (此外还提供解决了线程执行安排死锁线程间通讯等实际问题机制)
  Thread类有几个至关重要思路方法描述如下:
  Start:启动线程;
  Sleep():静态思路方法暂停当前线程指定毫秒数;
  Abort:通常使用该思路方法来终止个线程;
  Suspend:该思路方法并不终止未完成线程它仅仅挂起线程以后还可恢复;
  Resume:恢复被Suspend思路方法挂起线程执行;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: