线程区别()

死锁:1.占有且等待;2.循环等待;3.互斥;4.不可抢占。

sleep:让线程处于休眠状态,占用尽可能少的CPU内存时间

线程等待

终止线程

检测线程状态

线程优先级

前台线程与后台线程:初始化的线程不说明是后台,默认定为前台线程,isBackground定义成后台线程。后台线程会在进程结束后直接结束,进程等待所有前台线程完成后再结束工作,但如果只剩后台线程,就会直接结束工作。

线程锁

线程同步:尽可能避免在多个线程间使用单一对象。

将等待的线程置于阻塞状态。尽可能占用少的CPU线程调度器会保持等待的线程状态;需要消耗相当多的资源。若线程要被挂起很长时间,这么做就值得。又被称为内核模式。

使用Mutex类,同步单独的程序,Mutex只对一个线程授予对共享资源的独占访问。

使用SemaphoreSilm类,

使用AutoResetEvent类:一个线程向另一个线程发送通知,可以通知等待的线程有某事发生。

ManualResetEventSlim:set方法用来打开大门允许准备好的线程接收信号并继续工作;reset用来关闭大门。

CountDownEvent类:

ReaderWriterLockSlim类:创建线程安全的机制(安全的对文件读写),读锁允许多线程读取数据,写锁允许在被释放前会阻塞了其他线程的所有操作。

线程池:通过System.Threading.ThreadPool类型可以使用线程池使用线程池来执行异步操作。

线程池和并行度:不为每个操作创建一个线程,而将操作放入到线程池中。然后线程池开始执行这些操作。

————————

死锁:1.占有且等待;2.循环等待;3.互斥;4.不可抢占。

sleep:让线程处于休眠状态,占用尽可能少的CPU内存时间

线程等待

终止线程

检测线程状态

线程优先级

前台线程与后台线程:初始化的线程不说明是后台,默认定为前台线程,isBackground定义成后台线程。后台线程会在进程结束后直接结束,进程等待所有前台线程完成后再结束工作,但如果只剩后台线程,就会直接结束工作。

线程锁

线程同步:尽可能避免在多个线程间使用单一对象。

将等待的线程置于阻塞状态。尽可能占用少的CPU线程调度器会保持等待的线程状态;需要消耗相当多的资源。若线程要被挂起很长时间,这么做就值得。又被称为内核模式。

使用Mutex类,同步单独的程序,Mutex只对一个线程授予对共享资源的独占访问。

使用SemaphoreSilm类,

使用AutoResetEvent类:一个线程向另一个线程发送通知,可以通知等待的线程有某事发生。

ManualResetEventSlim:set方法用来打开大门允许准备好的线程接收信号并继续工作;reset用来关闭大门。

CountDownEvent类:

ReaderWriterLockSlim类:创建线程安全的机制(安全的对文件读写),读锁允许多线程读取数据,写锁允许在被释放前会阻塞了其他线程的所有操作。

线程池:通过System.Threading.ThreadPool类型可以使用线程池使用线程池来执行异步操作。

线程池和并行度:不为每个操作创建一个线程,而将操作放入到线程池中。然后线程池开始执行这些操作。