1线程概念
操作系统能够进行运算调度的最小单位。
它被包含在进程之中,是进程中的实际运作单位
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程
我们目前写的程序 都在主线程中
2语法
线程类 Thread 需要引用命名空间 using System.Threading;
(1)申明一个新的线程
线程执行的代码 需要封装到一个函数中
新线程 将要执行的代码逻辑 被封装到了一个函数语句块中
Thread t = new Thread(NewThreadLogic);(2)启动线程 t.Start();
(3)设置为后台线程 t.IsBackground = true;
当前台线程都结束了的时候,整个程序也就结束了,即使还有后台线程正在运行
后台线程不会防止应用程序的进程被终止掉
如果不设置为后台线程 可能导致进程无法正常关闭
(4)关闭释放一个线程
如果开启的线程中不是死循环 是能够结束的逻辑 那么 不用刻意的去关闭它
如果是死循环 想要中止这个线程 有两种方式
死循环中bool标识 isRuning = false;
通过线程提供的方法 t.Abort();
(5)线程休眠
让线程休眠多少毫秒 1s = 1000毫秒
在哪个线程里执行 就休眠哪个线程
Thread.Sleep(1000);
(6) 线程之间共享数据
多个线程使用的内存是共享的,都属于该应用程序(进程)
所以要注意 当多线程 同时操作同一片内存区域时可能会出问题
可以通过加锁的形式避免问题 lock
当我们在多个线程当中想要访问同样的东西 进行逻辑处理时,为了避免不必要的逻辑顺序执行的差错 lock(引用类型对象)