您的位置:首页 > 其它

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

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

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

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

比如一个工作线程每秒更新显示系统时间, 而我又需要计算一个复杂的计算结果,需要耗时两秒,如果在原来的线程中执行计算方法,则无法继续正常执行更新显示系统时间的功能,因为那个代码还没执行完,无法跳转到更新时间的代码.而如果我启动另外一个线程,只需花费0.1秒,然后就可以继续执行更新显示时间的工作了,当新建的计算线程运算完毕以后,将结果返回个原线程,原线程直接将结果更新一下,就可以了. 这个过程就完成了一个典型的利用多线程进行的异步运算.
采用多线程就是为了能够使用多线程的异步处理,可以并发多个线程同时处理不同的问题,互不影响,但是如果共用数据源的话就经常需要保证多线程的同步处理,不能使用异步,也就是说需要线程1处理完之后,线程2才能继续处理,这样的话和不使用多线程有什么区别吗?数据都是一条一条的执行的。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: