摘要:
阻塞的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)
浙公网安备 33010602011771号