标签:
1.list参数问题(无warnnings)
public static void main(String[] args){
List<Object> list=new ArrayList<Object>();
list.add("ABDC");
list.add(1);
list.add(new Thread());
for(Object obj:list)System.out.println(obj);
打印结果:
ABDC
1
Thread[Thread-0,5,main]
public String toString() {
ThreadGroup group = getThreadGroup();
if (group != null) {
return "Thread[" + getName() + "," + getPriority() + "," +
group.getName() + "]";
} else {
return "Thread[" + getName() + "," + getPriority() + "," +
"" + "]";
}
}
2.list参数问题(有 warnnings)
public static void main(String[] args){
List list=new ArrayList();
list.add("ABDC");
list.add(1);
list.add(new Thread());
for(Object obj:list)System.out.println(obj);
打印结果:
ABDC
1
Thread[Thread-0,5,main]
warnnings:list是需要有参数的
3.ThreadLocal的同步机制
threadLocal和线程的同步这两种方式都用来解决多线程共享变量冲突问题
1)线程的同步是采用“以时间来换空间”的方式,锁的机制
2)ThreadLocal是采用“以空间来换时间”的方式,共享变量副本
hreadLocal则从另一个角度来解决多线程的并发访问。ThreadLocal会为每一个线程提供一个独立的变量副本,从而隔离了多个线程对数据的访问冲突。因为每一个线程都拥有自己的变量副本,从而也就没有必要对该变量进行同步了。
ThreadLocal提供了线程安全的共享对象,在编写多线程代码时,可以把不安全的变量封装进ThreadLocal。比如书HashMap就是不安全的。
4.ThreadLocal的接口方法
例子:
ThreadLocal是保证变量是安全的
标签:
原文地址:http://www.cnblogs.com/zhengtu2015/p/4877411.html