介绍java内部容器类时,写到
[quote]
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap
ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。
[/quote]
所谓同步的,就线程安全;异步的,就不是线程安全。同步异步影响到的是多线程状态下访问资源的安全性。
同步的容器类,实现的访问资源前的加锁和访问资源后的解锁操作,确保了多线程状态下的安全访问,但牺牲了执行效率。
而异步的,效率高了,但在多线程模式运行下是不安全的。显然单线程运行的程序,选择异步容器是不涉及线程安全性问题的。
[quote]
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap
ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。
[/quote]
所谓同步的,就线程安全;异步的,就不是线程安全。同步异步影响到的是多线程状态下访问资源的安全性。
同步的容器类,实现的访问资源前的加锁和访问资源后的解锁操作,确保了多线程状态下的安全访问,但牺牲了执行效率。
而异步的,效率高了,但在多线程模式运行下是不安全的。显然单线程运行的程序,选择异步容器是不涉及线程安全性问题的。