感性上对Java同步的含意不是很了解,好像被其他地方相同相识的概念影响,现在来整体区分一下:
通信学上的同步异步
同步通信:要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流,接收端时刻接收比特流。
在每组信息的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙
异步通信:不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
因此必须在每一个字符的开始和结束的地方加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
-----------------------------------------------------------------------------------------------------
Java中的同步异步
-
同步:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;
-
异步:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待
区别:一个需要等待,一个不需要等待
同步 "按照顺序一个接一个" 进行操作,可以避免出现死锁、脏读数据的发生,一般共享某一资源的时候用。
例如:如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按照顺序来修改;
异步则是可以提高效率,现在CPU都是双核四核,异步处理的话可以同时做多项工作,当然必须保证是可以并发处理;