同步和异步的初步理解?

参考:http://blog.csdn.net/ygzk123/article/details/8037223

ArrayList 和HashMap是异步,Vector和HashTable是同步,同步是线程安全的,异步不是线程安全的,

举例说明: 

当创建一个Vector对象时候, 

Vector ve=new Vector(); 
ve.add("1"); 

当在多线程程序中,第一个线程调用修改对象ve的时候,就为其上了锁,其他线程只有等待。 

当创建一个ArrayList对象时候, 

ArrayList list=new ArrayList(); 
list.add("1"); 

当在多线程程序中,第一个线程调用修改对象list的时候,没有为其上锁,其他线程访问时就会报错。 

eg:list.remove("1"),然后再由其他线程访问list对象的1时就会报错。 

 

java 异步与同步应用

所谓异步输入输出机制,是指在进行输入输出处理时,不必等到输入输出处理完毕才返回。所以异步的同义语是非阻塞(None Blocking)。


举个例子:普通B/S模式(同步)AJAX技术(异步)   
           
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
   
           
异步:   请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

 

同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。   
异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。
   
所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。

 

以通讯为例   
           
同步:发送一个请求,等待返回,然后再发送下一个请求
   
           
异步:发送一个请求,不等待返回,随时可以再发送下一个请求
   
           
并发:同时发送多个请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值