1个回答
展开全部
线程 和 异步是两个不同的概念.
首先说线程, 线程是CUP顺序执行指令的一个调度单位.
一个线程内的指令将会被顺序执行,Ps.跳转指令也是按照时序执行的.
多线程,是指同一时刻存在多个调度单位.
异步和同步, 举个例子说明异步吧, 我要洗衣服的时候,先打开上水管,然后再去抱脏衣服,在我抱脏衣服的同时,水上好了,上水过程就相当于我打开了一个异步工作.
我们实现异步的方法基本上就是使用多线程实现的,
比如一个工作线程每秒更新显示系统时间, 而我又需要计算一个复杂的计算结果,需要耗时两秒,如果在原来的线程中执行计算方法,则无法继续正常执行更新显示系统时间的功能,因为那个代码还没执行完,无法跳转到更新时间的代码.而如果我启动另外一个线程,只需花费0.1秒,然后就可以继续执行更新显示时间的工作了,当新建的计算线程运算完毕以后,将结果返回个原线程,原线程直接将结果更新一下,就可以了. 这个过程就完成了一个典型的利用多线程进行的异步运算.
首先说线程, 线程是CUP顺序执行指令的一个调度单位.
一个线程内的指令将会被顺序执行,Ps.跳转指令也是按照时序执行的.
多线程,是指同一时刻存在多个调度单位.
异步和同步, 举个例子说明异步吧, 我要洗衣服的时候,先打开上水管,然后再去抱脏衣服,在我抱脏衣服的同时,水上好了,上水过程就相当于我打开了一个异步工作.
我们实现异步的方法基本上就是使用多线程实现的,
比如一个工作线程每秒更新显示系统时间, 而我又需要计算一个复杂的计算结果,需要耗时两秒,如果在原来的线程中执行计算方法,则无法继续正常执行更新显示系统时间的功能,因为那个代码还没执行完,无法跳转到更新时间的代码.而如果我启动另外一个线程,只需花费0.1秒,然后就可以继续执行更新显示时间的工作了,当新建的计算线程运算完毕以后,将结果返回个原线程,原线程直接将结果更新一下,就可以了. 这个过程就完成了一个典型的利用多线程进行的异步运算.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |