黑马程序员技术交流社区
标题:
集合学完了,一直有个疑问
[打印本页]
作者:
程洋
时间:
2013-12-18 17:14
标题:
集合学完了,一直有个疑问
再讲集合的时候,大多数集合都是线程不同步的,这里的线程不同步是什么意思,具体在线程中是怎样体现的,求大神用代码讲解下
作者:
纷飞尽
时间:
2013-12-18 17:20
Java中常用的集合框架推荐使用的三个实现类:HashSet\ArrayList\HashMap都是线程不安全的.如果有多条线程访问它们,而且有超过一条的线程试图修改它们,则可能出现错务.Collections提供了多个静态方法用于创建同步集合
下面程序创建了四个同步的集合对象
import java.util.*;
public class TestSynchronized
{
public static void main(String[] args)
{
//下面程序创建了四个同步的集合对象
Collection c=Collections.synchronizedCollection(new ArrayList());
List list=Collections.synchronizedList(new ArrayList());
Set s=Collections.synchronizedSet(new HashSet());
Map m=Collections.synchronizedMap(new HashMap());
}
}
Vector,HashTable是线程安全的集合类,不过,这两种类是很早的用法,现在一般要尽量少采用
作者:
黄伟财
时间:
2013-12-19 15:37
同步就是协同步调,按预定的先后次序进行运行;异步和同步相反,是几个程序同时运行CPU会每个程序都运行一会,这样就会避免计算机长时间被某一个程序占用。
作者:
花生壳
时间:
2013-12-19 19:26
Java中常用的集合框架推荐使用的三个实现类:HashSet\ArrayList\HashMap都是线程不安全的.如果有多条线程访问它们,而且有超过一条的线程试图修改它们,则可能出现错务.Collections提供了多个静态方法用于创建同步集合
下面程序创建了四个同步的集合对象
import java.util.*;
public class TestSynchronized
{
public static void main(String[] args)
{
//下面程序创建了四个同步的集合对象
Collection c=Collections.synchronizedCollection(new ArrayList());
List list=Collections.synchronizedList(new ArrayList());
Set s=Collections.synchronizedSet(new HashSet());
Map m=Collections.synchronizedMap(new HashMap());
}
}
Vector,HashTable是线程安全的集合类,不过,这两种类是很早的用法,现在一般要尽量少采用
写的很好
作者:
任亚俊
时间:
2013-12-20 11:46
多线程学过了吗,这个需要多线程知识,学了多线程就好理解了。在多线程中,多个线程可以共享一个变量,线程不安全的类,一般不能做共享变量。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2