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(引用类型对象)

 3线程的使用建议 

public void OnDestroy()
    {
        t.Abort();
        t = null;
    }//前台不在销毁生命周期中写,就会导致编辑器已经暂停,但线程一直执行。建议用后台线程

更多推荐