多线程
线程
操作系统能够进行运算调度的最小单位
它被包含在进程之中,是进程中的实际运作单位
多线程
可以通过代码开启新的线程,可以同时运行代码的多条管道就叫多线程
多线程相关语法
//线程类 Thread
//申明一个新的线程
//线程执行的代码需要封装到一个函数中
static void NewThreadLogic()
{
//新线程执行的代码逻辑在该函数语句块中
}
Thread t = new Thread(NewThreadLogic);
//启动一个线程
t.Start();
//设置为后台线程
//当前台线程都结束了的时候,整个程序也结束了,即使还有后台线程正在运行
//后台线程不会防止应用程序终止
//如果不设置为后台线程可能回导致进程无法正常关闭
t.IsBackground = true;
//关闭释放一个线程
//如果线程中的逻辑是死循环的话, 有两种中止这个线程
//1.死循环中加入bool标识
//2.通过线程提供的方法(在.Net Core版本中无法中止,会报错)
t.Abort();
//线程休眠
//让线程休眠多少毫秒
//在哪个线程中执行就休眠哪个线程
Thread.Sleep(1000);
线程之间共享数据
多个线程使用的内存是共享的,都属于该应用程序
所以要注意多线程同时操作同一片内存区域时可能会出问题
可通过加锁的形式避免
//当我们在多个线程当中想访问同样的东西进行逻辑处理时
//为了避免逻辑执行顺序错误
//就可以通过lock(引用类型对象),一定要是一个引用类型
static object obj = new object();
lock(obj)
{
//多线程访问相同的函数语句块
}

浙公网安备 33010602011771号