java TheadLocal 多线程资源使用

来源:互联网 发布:锤子移动的效果js 编辑:程序博客网 时间:2024/06/06 03:04

线程处理资源类:

package org.shefron.fc.thread.threadlocal;import java.util.HashMap;public class HandleThead extends Thread {private HashMap map = null;public HandleThead(HashMap hashMap) {map = hashMap;}@Overridepublic void run() {super.run();RegisterManager.getRegisterManager().startRegister(map);if (RegisterManager.getRegisterManager().getRegister() != null){System.out.println("呵呵,有啊");}}public void print(){if (RegisterManager.getRegisterManager().getRegister() == null){System.out.println("没有了");}}}


 

多线程资源管理类:

 

package org.shefron.fc.thread.threadlocal;import java.util.HashMap;public class RegisterManager {private ThreadLocal<HashMap> localRegister = new ThreadLocal<HashMap>();private static RegisterManager manager = new RegisterManager();private RegisterManager(){}public static RegisterManager getRegisterManager(){return manager;}public void startRegister(HashMap infoMap){this.localRegister.set(infoMap);}public HashMap getRegister(){return this.localRegister.get();}}


主方法测试类:

 

package org.shefron.fc.thread.threadlocal;import java.util.HashMap;public class TestThreadLocal {/** * @param args */public static void main(String[] args) {HashMap map = new HashMap();map.put("hehe", "haha");RegisterManager.getRegisterManager().startRegister(map);HandleThead handle = null;for (int i=1;i<4;i++){handle = new HandleThead(new HashMap());//子线程handle.start();if(handle != null){//此方法位于主线程handle.print();}}System.out.println(RegisterManager.getRegisterManager().getRegister());}}


 

java TheadLocal 多线程资源使用。
0 0
原创粉丝点击