ThreadLocal
来源:互联网 发布:大连软件职业学校 编辑:程序博客网 时间:2024/06/03 17:42
三个线程共享一个SequenceNumber,通过ThreadLocal为每个线程提供单独的副本,产生独立的序列号。
package com.gfzs.Thread;public class SequenceNumber {private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer>() {public Integer initialValue() {return 0;}};public int getNextNum() {seqNum.set(seqNum.get()+1);return seqNum.get();} public static void main(String[] args) {SequenceNumber sn = new SequenceNumber();TestClient tc1 = new TestClient(sn);TestClient tc2 = new TestClient(sn);TestClient tc3 = new TestClient(sn);tc1.start();tc2.start();tc3.start();}private static class TestClient extends Thread{private SequenceNumber sn;public TestClient (SequenceNumber sn) {this.sn = sn;}public void run() {for (int i = 0; i < 3; ++i) {System.out.println("thread["+Thread.currentThread().getName()+"] sn["+sn.getNextNum()+"]");}}}}
输出
thread[Thread-0] sn[1]
thread[Thread-1] sn[1]
thread[Thread-2] sn[1]
thread[Thread-1] sn[2]
thread[Thread-1] sn[3]
thread[Thread-0] sn[2]
thread[Thread-2] sn[2]
thread[Thread-0] sn[3]
thread[Thread-2] sn[3]
阅读全文
0 0
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- ThreadLocal
- threadlocal
- ThreadLocal
- ThreadLocal
- 函数默认参数
- Synopsys全系列工具简介
- ORACLE SELECT INTO防止没结果时报错
- HashMap,LinkedHashMap,TreeMap的区别
- HDU6194(后缀数组 + rmq)
- ThreadLocal
- 面试之用源码的方式解释ScrollView 嵌套listview的解决方案
- 刷题——poj 1258 Agri-Net
- CNN参数个数和连接个数计算详解
- 【J2ee】session和cookie的区别与联系
- mysql explain执行计划详解
- Odoo的游标cr获取结果fetchall等分析
- 虚拟机的安装
- 坑