B_02 什么是线程

什么是线程

  线程是操作系统抽象出来的概念,是操作系统上的资源,是用来执行任务操作的单位。各大语言操作操作线程,其实是调用操作系统上的接口来控制线程。

多线程的特点

  1、多线程无序性(原因:线程的切换是由操作系统的线程调度算法来进行切换的,里边是黑盒,对应用层不可知)

  2、多线程不卡主线程;

  2、多线程在计算机合理资源范围内可以提升性能(线程并不是越多越好,线程的开辟、销毁都是比较消耗计算机性能的操作,如果线程过多,系统调度切换线程亦会非常消耗资源,会造成提升的性能不如消耗的性能多)

c#中使用多线程

  在c#中委托、thread、Task等对象会与线程的一些操作有关

  列举一下几点: 

  1.1、 thread:线程等待,回调,前台线程/后台线程
  2.2、 threadpool(提升线程的复用):线程池使用,设置线程池,ManualResetEvent
  3.3 、扩展封装thread&threadpool回调/等待

  2.1 Task:Waitall WaitAny Delay
  2.2 TaskFactory:ContinueWhenAny ContinueWhenAll
  2.3 并行运算Parallel.Invoke/For/Foreach

多线程使用存在的一些问题

  在多线程访问共享资源时会存在数据的误操作,需要枷锁来进行多线程的同步,避免误操作的产生。

  能起到锁的作用的对象有:Lock,mutex(互斥体),信号量(系统层面的)

 

posted @ 2021-04-25 10:24  旭日阳光/hjw  阅读(68)  评论(0)    收藏  举报