首页 > 代码库 > java TheadLocal 多线程资源使用
java TheadLocal 多线程资源使用
线程处理资源类:
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; } @Override public 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 多线程资源使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。