2014年5月27日
摘要: 阻塞的I/O线程不会被打断,需要关闭资源才能打断 package Thread.Interrupting; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; 阅读全文
posted @ 2014-05-27 23:08 上校 阅读(12133) 评论(1) 推荐(1)
摘要: 该例子说明,Sleep可以被中断,但是I/O和synchronized不能被中断。 package Thread.Interrupting; import java.io.IOException; import java.io.InputStream; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; 阅读全文
posted @ 2014-05-27 22:14 上校 阅读(500) 评论(0) 推荐(0)
摘要: package Thread.Abort; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; //计数类 class Count {//DATA private int count = 0; private Random rand = new Random(47); // public synchronized int increment() { int temp = count; if (rand.nextBoolean()) Thread.yield(); return (count = ++te 阅读全文
posted @ 2014-05-27 20:50 上校 阅读(9145) 评论(0) 推荐(0)
摘要: 引用:http://lavasoft.blog.51cto.com/62575/51926/ 一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。 从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。 阅读全文
posted @ 2014-05-27 00:27 上校 阅读(303) 评论(0) 推荐(1)
摘要: ThreadLocal保证数据同步 package Thread.Common; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; class Accessor implements Runnable { private final int id; public Accessor(int idn) { id = idn; } 阅读全文
posted @ 2014-05-27 00:18 上校 阅读(681) 评论(0) 推荐(0)