诛仙mp3有声:进程和线程基础
来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 06:48:46
进程:进程是运行中的程序,而一个进程由至少一个线程所组成的。
线程:线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
PS:进程是系统分配各种资源的单位,而线程则是操作系统分配CPU的基本单位。
.NET中,线程由Thread类创建,而Thread类重要的方法:
Start():启动线程;
Sleep(int):静态方法,暂停当前线程指定的毫秒数;
Abort():终止一个线程;
Suspend():挂起线程,以后还可恢复;
Resume():恢复被Suspend()方法挂起的线程的执行。
使用Thread类创建线程时,只需提供线程入口,线程入口是通过ThreadStart代理(delegate)来提供的,其定义为:public delegate void ThreadStart(),由此定义可知,创建线程对象必须传给它一个方法。通俗的来说是:每个线程都对应着一个特定的线程函数,线程的执行体现着线程函数的执行。
如下简单创建线程:
SimpleThreadDemousing System;using System.Threading;namespace MultiThreads{class Program{public static void Main(string[] args){Console.WriteLine("Main Thread");AssistThread assistThread=new AssistThread();//通过ThreadStart委托一个线程函数Thread aThread=new Thread(new ThreadStart(assistThread.threadMethod));aThread.Start();Console.ReadKey(true);}}class AssistThread{public void threadMethod(){int num=0;while(num<10){Console.WriteLine("AssistThread's threadMethod Start!");num++;}}}
Thread.ThreadState 属性:
ThreadState 属性的取值如下:
Aborted:线程已停止;
AbortRequested:线程的Thread.Abort()方法已被调用,但是线程还未停止;
Background:线程在后台执行,与属性Thread.IsBackground有关;
Running:线程正在正常运行;
Stopped:线程已经被停止;
StopRequested:线程正在被要求停止;
Suspended:线程已经被挂起(此状态下,可以通过调用Resume()方法重新运行);
SuspendRequested:线程正在要求被挂起,但是未来得及响应;
Unstarted:未调用Thread.Start()开始线程的运行;
WaitSleepJoin:线程因为调用了Wait(),Sleep()或Join()等方法处于封锁状态;
线程的优先级:
由高到低分别是Highest,AboveNormal,Normal,BelowNormal,Lowest. 默认为:ThreadPriority.Normal
线程:线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
PS:进程是系统分配各种资源的单位,而线程则是操作系统分配CPU的基本单位。
.NET中,线程由Thread类创建,而Thread类重要的方法:
Start():启动线程;
Sleep(int):静态方法,暂停当前线程指定的毫秒数;
Abort():终止一个线程;
Suspend():挂起线程,以后还可恢复;
Resume():恢复被Suspend()方法挂起的线程的执行。
使用Thread类创建线程时,只需提供线程入口,线程入口是通过ThreadStart代理(delegate)来提供的,其定义为:public delegate void ThreadStart(),由此定义可知,创建线程对象必须传给它一个方法。通俗的来说是:每个线程都对应着一个特定的线程函数,线程的执行体现着线程函数的执行。
如下简单创建线程:
SimpleThreadDemousing System;using System.Threading;namespace MultiThreads{class Program{public static void Main(string[] args){Console.WriteLine("Main Thread");AssistThread assistThread=new AssistThread();//通过ThreadStart委托一个线程函数Thread aThread=new Thread(new ThreadStart(assistThread.threadMethod));aThread.Start();Console.ReadKey(true);}}class AssistThread{public void threadMethod(){int num=0;while(num<10){Console.WriteLine("AssistThread's threadMethod Start!");num++;}}}
Thread.ThreadState 属性:
ThreadState 属性的取值如下:
Aborted:线程已停止;
AbortRequested:线程的Thread.Abort()方法已被调用,但是线程还未停止;
Background:线程在后台执行,与属性Thread.IsBackground有关;
Running:线程正在正常运行;
Stopped:线程已经被停止;
StopRequested:线程正在被要求停止;
Suspended:线程已经被挂起(此状态下,可以通过调用Resume()方法重新运行);
SuspendRequested:线程正在要求被挂起,但是未来得及响应;
Unstarted:未调用Thread.Start()开始线程的运行;
WaitSleepJoin:线程因为调用了Wait(),Sleep()或Join()等方法处于封锁状态;
线程的优先级:
由高到低分别是Highest,AboveNormal,Normal,BelowNormal,Lowest. 默认为:ThreadPriority.Normal
进程和线程基础
进程和线程的区别
MFC的进程和线程
进程和线程的区别!
如何终止和暂停线程和进程?
内核线程、轻量级进程、用户线程和LinuxThreads库
第八章 MFC的进程和线程
写操作xml文件,进程和线程同时写
线程共享进程中的数据
java线程基础
进程与线程的区别2
进程与线程的区别1
进程与线程的区别123
进程与线程 - orbit的专栏
进程线程同步的四种方法
linux线程和相关函数
brs进程和PowerDVD
国家中长期教育改革和发展规划纲要关于加快教育信息化进程的阐述 - 箫羌乐园 - 江西省基础...
系统进程lsass.exe和病毒进程LSASS.EXE
线程中CreateEvent和SetEvent及WaitForSingleObj -- 深...
超级详细了解进程和病毒知识
xp文件和进程分析(增补中)
社会制度和所有制基础
WASCE 中的高级管理,第 2 部分: 使用线程池、集群和配置插件