• CountDownLatch


    简述:现等待所有子线程结束后再执行一段代码

    package com.example.demo.Thread;

    import lombok.SneakyThrows;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;

    import javax.servlet.http.HttpServletRequest;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.CountDownLatch;
    @RestController
    @RequestMapping
    public class ThreadDemo {

    static CountDownLatch cdl;//这里的数字,开启几个线程就写几


    /**
    * 实现等待所有子线程结束后再执行一段代码
    * @throws InterruptedException
    */
    @RequestMapping("threadDemo/test")
    public static void counter() throws InterruptedException {
    // 将RequestAttributes对象设置为子线程共享
    ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    RequestContextHolder.setRequestAttributes(sra, true);

    String token = getCurrentRequestInfo().getHeader("token");
    System.out.println(token);
    cdl = new CountDownLatch(1);
    new Thread(new Runnable(){
    @SneakyThrows
    public void run() {
    Thread.sleep(1000); //1000 毫秒,也就是bai1秒.
    String token1 = getCurrentRequestInfo().getHeader("token");
    System.out.println(token1);
    // TODO Auto-generated method stub
    cdl.countDown();
    }
    }).start();
    cdl.await();//主线程等待子线程执行输出
    }

    public static HttpServletRequest getCurrentRequestInfo() {
    ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    return servletRequestAttributes.getRequest();
    }
    }

      

  • 相关阅读:
    调用百度地图API添加点聚合时,marker标注的label标签刷新丢失问题
    redis--基本命令
    centos8安装redis6.0.5
    centos8更改镜像源
    centos8重启网络服务
    搭建eureka高可用
    html5图片缩放后上传blob
    mysql主从复制
    zTree
    datetimepicker使用总结
  • 原文地址:https://www.cnblogs.com/wangdahui/p/13554305.html
Copyright © 2020-2023  润新知