背景:线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
异步:与之相反的就是同步,即按顺序执行(类似初中物理的串联电路图),反之异步是并联电路图,相互之间互不影响,执行完立马返回结果,无需等待。
解决了并发量高的问题。
案列:
1000个请求,如果是单线程,同步接口,则会在一个线程里执行1000个请求,按1.2.3.4....1000的顺序执行并返回接口,待上一个请求完成在执行下一个请求,耗时等待非常久。
如果改用多线程,异步的方式,就好比如开了1000个线程,每个请求占一个线程,相互独立,互不影响,谁先执行完就立马返回结果。
注意:C#里的线程是轮询的方式,按单位时间内轮询执行某个线程,java是抢断方式,可以一直执行某个个耗时比较长的线程。
如图:async await 修饰方法为异步方法,
Task.Run(menthod): 开启线程
method是一个lamda表达式:实质是一个委托(类型js中的回调),待开启线程委托执行获取数据的接口。
ps:博主主攻javascript,学会一门语言,其他语言都是类似的,只是名字叫法不一样。