栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

多线程创建线程号,用时

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多线程创建线程号,用时

package com.xzz.tread;


import lombok.extern.slf4j.Slf4j;


import java.io.UnsupportedEncodingException;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;


@Slf4j
public final class CommonUtil {


    public CommonUtil() {
    }

    
    public static String getUUID() {

        return UUID.randomUUID().toString().replace("-", "").toUpperCase();
    }

    
    public static String getPid() {
        RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
        String name = runtime.getName(); // format: "pid@hostname"
        try {
            //return name.substring(0, name.indexOf('@'));
            return name;
        } catch (Exception e) {
            return "pid";
        }
    }

    
    public static String getDate(String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(new Date());
    }

    
    public static String getHostName() {
        RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
        String name = runtime.getName(); // format: "pid@hostname"
        try {
            return name.substring(name.indexOf('@') + 1);
            //return name;
        } catch (Exception e) {
            return "hostName";
        }
    }


}
package com.xzz.tread;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;

public class TraceUtils {

	private static Map serialMap = new HashMap();
	private static ReentrantLock traceLock = new ReentrantLock();
	private static String lastTime = "";
	
	
	private static String getTime(){
		DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
		return df.format(new Date());
	}
	
	private static String getSerialNo(String nodeNode,String currentTime,int length){
		traceLock.lock();
		Integer serialNo = serialMap.get(nodeNode);
		if(lastTime.equals(currentTime)){
			serialNo += 1;
		}else{
			serialNo = 1;
			lastTime = currentTime;
		}
		serialMap.put(nodeNode, serialNo);
		traceLock.unlock();
		return String.format("%0"+length+"d",serialNo);
	}
	
	
	public static String getTraceId(String nodeNode){
		String time = getTime() + (int) ((Math.random() * 9 + 1) * 100000);
		return time + nodeNode + getSerialNo(nodeNode,time,6);
	}
	

}
package com.xzz.tread;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;


@RestController
@Slf4j
public class TreadCeShi {
    private static final String NODE_NAME = CommonUtil.getPid();

    @RequestMapping("TreadCeShi")
    private String TreadCeShi() {
        //生成线程号
        Thread.currentThread().setName(TraceUtils.getTraceId(NODE_NAME));
        String name = Thread.currentThread().getName();
        System.out.println(name);
        return  "s [" + name + "]";
    }




}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445881.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号