小工具      在线工具  汉语词典  css  js  c++  java

Java Join 学习

Java 额外说明

收录于:97天前

public class ThreadLocalTest implements Runnable {

    private static AtomicInteger counter = new AtomicInteger(100);
    private static ThreadLocal<String> threadInfo = new ThreadLocal<String>() {
        @Override
        protected String initialValue() {
            return "[" + Thread.currentThread().getName() + "," + counter.getAndIncrement() + "]";
        }
    };

    @Override
    public void run() {
        System.out.println("threadInfo value:" + threadInfo.get());
    }

    /**
     * join() 的作用: 让父线程等待子线程结束之后才能继续运行
     *
     * 子线程结束之后,"会唤醒主线程",父线程重新获取cpu执行权,继续运行。
     * 子线程结束后,子线程的this.notifyAll()会被调用,join()返回,父线程只要获取到锁和CPU,就可以继续运行下去了。
     *
     * 在调用 join() 方法的程序中,原来的多个线程仍然多个线程,并没有发生“合并为一个单线程”。
     * 真正发生的是调用 join() 的线程进入 TIMED_WAITING 状态,等待 join() 所属线程运行结束后再继续运行。
     *
     * @param args
     * @throws InterruptedException
     */

    public static void main(String[] args) throws InterruptedException {
        Thread thread1 = new Thread(new ThreadLocalTest());
        Thread thread2 = new Thread(new ThreadLocalTest());

        thread1.start();
        thread2.start();

//        thread1.join();
//        thread2.join();

        System.out.println("threadInfo value in main:" + threadInfo.get());
    }
    /**
     *  1。 注释掉 thread1.join() 和 thread2.join()的执行结果
     *   threadInfo value in main:[main,100]
         threadInfo value:[Thread-0,101]
         threadInfo value:[Thread-1,102]
     */

    /**
     *  2。 打开注释掉 thread1.join() 和 thread2.join()的执行结果
     *
         threadInfo value:[Thread-0,101]
         threadInfo value:[Thread-1,102]
         threadInfo value in main:[main,100]
     */
}

. . .

相关推荐

额外说明

数据库-同一服务器上不同数据库表的查询缩写

文章目录 前言 问题分析 mybatis 测试 1、测试和连接配置一样的数据表 2、mybatis 测试跨库表 探究:跨库操作是否支持事务? 如果出现异常。是否会回滚? 总结 前言 在Java开发中,通常会碰见下列这种情况的数据库结构。 假设项目创建的数

额外说明

最新37网游JS逆向分析

目标网址:37网游,玩心创造世界_37网页游戏平台 重要说明:文章教程仅供参考学习,请勿用于非法用途,否则后果自负。 目录 1、接口参数分析  2、全局搜索关键词

额外说明

我们常说这个pycharm有陷阱,第三方库导入失败,看这里!

最近有小伙伴遇到了明明安装了 python 第三方库,但是在 pycharm 当中却导入不成功的问题。 ​ 一直以来,也有不少初学 python 的小伙伴,一不小心就跳进了虚拟环境和系统环境的【陷阱】中。 本文就基于此问题,来说说在 pycharm 当中

额外说明

[C语言]猜名次

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次

额外说明

ROS学习笔记01:安装ROS - 玩小海龟

文章目录 一、ROS是何物 二、在Ubuntu上安装ROS (一)设置ROS下载源 (二)安装ROS全套组件 (三)配置环境变量 (四)下载其它功能组件 (五)ROSDEP初始化 (六)ROSDEP更新 1、更新报超时错 2、解决更新超时错 (1)下载相

额外说明

《Cesium 进阶知识点》 - 加载天地图三维地名服务(无Cesium 版本依赖)

一、解决依赖  天地图官网说只支持 1.52、1.58、1.63.1 这 3个版本,其它版本报错。但我只使用三维地名服务。所以做了如下修改。 我在 1.80 版 和 1.84 版中测试有效。操作部署是: 1. 根据官网安装 cesium-tdt 插件;

额外说明

.Net Validator验证框架 [ .Net | Validator Framework | Attribute ]

.Net Validator验证框架 [ .Net | Validator Framework | Attribute ]   前言      简单易用是.Net Validator验证框架努力的目标。基于Attribute验证器标识,丰富的验证返回类型

额外说明

Python从入门到入土-基本技能

CSDN话题挑战赛第2期 参赛话题:学习笔记 命令行解析 手工编写 Python 命令行解析,支持 ‘-x’ 或者 ‘–x’ 类型选项处理,如果没有指定值则设置为True。 import sys def error(info): print(

额外说明

解决Windows系统文件夹esent.dll文件丢失找不到的情况

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个esent.dll文件(挑选

额外说明

wordpress语言切换_如何在WordPress中的用户帐户之间即时切换

WordPress 语言切换 您想在 WordPress 中的用户帐户之间立即切换吗?有时,在网站上测试新功能时,您可能需要在具有不同用户角色的用户帐户之间来回切换。虽然您可以手动注销并登录新帐户,但这并不是最有效地利用您的时间。在本文中,我们将向您展示

ads via 小工具