进程和线程的区别:
进程的概念:进程是计算机操作系统中正在运行的程序的实例。通过任务管理器可以查看运行进程。
前台进程:用户可以看见相应的操作界面,如:浏览器进程等
后台进程:用户默认是“看不见”操作界面。服务中大部分都是后台进程, 如:杀毒软件后台偷偷的扫描你的硬盘。
线程的概念:线程是操作系统能够进行运算调度的最小单位。
进程和线程的关系:线程必须包含在进程内。一个进程中可以包含多个线程。多个线程可以并行执行。(线程是在进程中并行执行的,称为多线程)
一般在语言中会把非常耗时的任务,放到另外线程中去执行。线程:主线程、分线程。主线程主要负责程序运行。分线程去执行别的任务(非常耗时)
C#语言中多线程主要表现在:System.Threading命名空间下的Thread类。
1. 实例化线程(分线程)
方法一: lambda 表达式
thread1 = new Thread(() => {Console.WriteLine("当前线程的名称;" + Thread.CurrentThread.Name);});
// 分线程中拿当前分线程,通过Thread.CurrentThread
thread1.Name = "我的第一个线程1"; //主线程中拿某个分线程,直接通过实例。
方法二:Thread thread2 = new Thread(doWork); //doWork为创建的方法
方法三:Thread thread3 = new Thread(new ParameterizedThreadStart(doWork)); //doWork为创建的方法
方法四:Thread thread4 = new Thread(new ThreadStart(doWork)); ThreadStart不能向线程传参,因为ThreadStart委托是无参数的。
thread4.Name = "我的第一个线程";
2. 启动线程
thread1.Start();
//向某个线程中传递参数,通过Start(param) 参数的数据类型是object
// 需要装箱。string===Object
thread3.Start("hello thread");