同步的编程模型
简单描述:
一个线程获得了一个任务,然后去执行这个任务,
当这个任务执行完毕后,才能执行接下来的另外一个任务。
注意:
这个线程不能将当前的任务放置在一边,转而去做另外一个任务。
单线程的情况:
一个线程,相当于一个人,这个人做完一个任务,再去做下一个任务。
这个人有两个任务,第一个是吃水果,第二个是写文章。
那么这个人是先去吃一堆水果,然后再去写文章。
多线程的情况:
异步编程模型
它和同步的编程模型有很大的区别:
一个线程中执行一堆任务,
这个线程可以自由的保存,恢复任务的状态。
也就是,它有能力穿插的执行任务。
单线程的情况:
一个线程,相当于一个人,这个人交替的做任务。
这个人有两个任务,第一个是吃水果,第二个是写文章。
那么这个人是先去吃两个水果,然后再去写文章,过一会再去吃水果,然后再来写文章。
多线程的情况:
几个人互相协作,处理这一堆任务
异步编程的好处
实用:
利用异步编程,不阻塞当前的ui线程,用户体验很好。
性能:
一个程序的性能是非常重要的,这个不言而喻。
当我们执行耗时任务(读写磁盘,网络请求)的时候,大约70%的时间都浪费在等待结果上面。
利用异步编程,在这浪费的70%的时间内,我们可以愉快的保存当前任务状态,去执行其他任务,等那个任务执行完成,有了结果,我们切换到那个任务的执行上。最大化的利用这个线程。