单线程同步;多线程异步理解

线程 和 异步是两个不同的概念.
首先说线程, 线程是CUP顺序执行指令的一个调度单位.
 一个线程内的指令将会被顺序执行,Ps.跳转指令也是按照时序执行的.
多线程,是指同一时刻存在多个调度单位.

异步和同步, 举个例子说明异步吧, 我要洗衣服的时候,先打开上水管,然后再去抱脏衣服,在我抱脏衣服的同时,水上好了,上水过程就相当于我打开了一个异步工作.

我们实现异步的方法基本上就是使用多线程实现的, 

比如一个工作线程每秒更新显示系统时间, 而我又需要计算一个复杂的计算结果,需要耗时两秒,如果在原来的线程中执行计算方法,则无法继续正常执行更新显示系统时间的功能,因为那个代码还没执行完,无法跳转到更新时间的代码.而如果我启动另外一个线程,只需花费0.1秒,然后就可以继续执行更新显示时间的工作了,当新建的计算线程运算完毕以后,将结果返回个原线程,原线程直接将结果更新一下,就可以了. 这个过程就完成了一个典型的利用多线程进行的异步运算.


采用多线程就是为了能够使用多线程的异步处理,可以并发多个线程同时处理不同的问题,互不影响,但是如果共用数据源的话就经常需要保证多线程的同步处理,不能使用异步,也就是说需要线程1处理完之后,线程2才能继续处理,这样的话和不使用多线程有什么区别吗?数据都是一条一条的执行的。。。

你可能感兴趣的:(单线程同步;多线程异步理解)