java 关于同步异步的理解

经常看到介绍 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时就会报错。

原文地址:https://www.cnblogs.com/sunxun/p/8721618.html