首页 > 其他分享 >2020-10-26 多线程学习1

2020-10-26 多线程学习1

时间:2023-06-12 16:31:44浏览次数:59  
标签:10 26 join name t1 start ThreadTest 多线程 public


join关键字 测试:

public class TestJoin {

    public static void main(String[] args) throws InterruptedException {

        // TODO Auto-generated method stub

        for (int i = 0; i < 3; i++) {
            ThreadTest t1=new ThreadTest("A");
            ThreadTest t2=new ThreadTest("B");
            ThreadTest t3=new ThreadTest("C");
            t1.start();
            t3.start();
            t1.join();
            t3.join();
            t2.start();
        }

    }


}
class ThreadTest extends Thread {
    private String name;
    public ThreadTest(String name){
        this.name=name;
    }
    public void run(){
        for(int i=1;i<=1;i++){
            System.out.print(name);
        }
    }
}

打印测试结果为: ACBCABCAB

说明 A/C 由于加入了join关键字,一定先于B执行,而A/C顺序,看cpu调度,无法确定

当: join 关键字后置的时候

public class TestJoin {

    public static void main(String[] args) throws InterruptedException {

        // TODO Auto-generated method stub

        for (int i = 0; i < 3; i++) {
            ThreadTest t1=new ThreadTest("A");
            ThreadTest t2=new ThreadTest("B");
            ThreadTest t3=new ThreadTest("C");
            t1.start();
            t3.start();
            t2.start();

            t1.join();
            t3.join();
        }

    }


}
class ThreadTest extends Thread {
    private String name;
    public ThreadTest(String name){
        this.name=name;
    }
    public void run(){
        for(int i=1;i<=1;i++){
            System.out.print(name);
        }
    }
}

打印结果: ACBBCAACB
多数情况为正确的,但是有错误出现(BCA),说明join关键字使用的时候,应规范使用,放在本身start方法之后(紧挨着)最为妥当.

标签:10,26,join,name,t1,start,ThreadTest,多线程,public
From: https://blog.51cto.com/u_16158506/6463467

相关文章

  • kafka环境搭建(Windows10)
    1.安装Javajdk说明:kafka是使用zookeeper来进行集群部署,zookeerper运行环境依赖Java环境,因此需要安装Javajdk,并设置好系统环境变量。1.1下载jdk1.8华为提供的下载服务:https://repo.huaweicloud.com/java/jdk/官网下载地址:https://www.oracle.com/java/technologies/download......
  • POJ 3264 Balanced Lineup
    思路:线段树求最大值减最小值,每个结点分别维护最大值和最小值即可。#include<cstdio>#include<queue>#include<cstring>#include<iostream>#include<cstdlib>#include<algorithm>#include<vector>#include<map>#include<string>#in......
  • BestCoder Round #71 (div.2)1001KK's Steel
    题意:中文题思路:其实我们不去考虑N,我们只考虑最优切割策略:     首先肯定是尽量的小即1、2     既要不相等,又不能构成三角形,即每次为当前数列中最大的两项的和     那么,构成的数列为1,2,3,5,8,......     这样我们只要求最接近且小于等于N的......
  • SM2259XT2开卡长江TAS,附SM2259XT2开卡工具,我更喜欢MAS1102量产工具
    闲的没事干,测一下59xt2+TAS,用的公版主控板,跳线按官方的来,电压给1v2,vcc不用管默认,都能用。随便焊一下,ce齐全,单颗2ce128G,单帖分布2ch/1ce。跑个rdt看看,DDR800。开卡工具是从量产部落下载的YMTC_TAS开卡工具。RDTMaxECC均在十几二十,全新自封片,还算不错体质。直接开卡,轻松开出来,容量aut......
  • DC-DC电源稳压模块直流隔离高压输出升压变换器5v12v24v转50v110v80v250v310v400v500v
    HRB系列隔离宽电压输入高电压稳压输出特点 效率高达80%以上 1*1英寸标准封装 单电压输出 稳压输出 工作温度:-40℃~+85℃ 阻燃封装,满足UL94-V0要求 温度特性好 可直接焊在PCB上应用HRB0.2~10W系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9......
  • 10个好用的 HTML5 特性
     在本文中,我列出了十个我过去没用过的HTML5功能,但现在发现它们很有用,废话不多说,让我们开始吧。 detais标签<details>标签向用户提供按需查看详细信息的效果。如果需要按需向用户显示内容,简单的做法就是使用此<details>标签。默认情况下,它是收起来的,打开后,它将展开并显示被隐藏的......
  • 二刷Leetcode-Days10
    1.二叉树/***102.BinaryTree的层序遍历(借助辅助队列实现,递归法pass)*@paramroot*@return*/publicList<List<Integer>>levelOrder(TreeNoderoot){List<List<Integer>>resList=newArrayList<>();......
  • 项目启动会必须汇报的26个要素
    项目启动会是项目正式开始实施的重要里程碑,一般需要多方参与并且确定项目的项目经理。项目经理需要通过与售前、商务、采购负责人提前沟通项目的前期情况,同时与领导申请与项目相关的资源。一般项目启动会的流程包括:1、项目总负责人说明项目的来源、客户对项目的期望以及项目可能出......
  • KubeSphere 社区双周报 | OpenFunction 发布 v1.1.0 | 2023.5.26-6.8
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2023.05.26-2023.06.08。贡献者名单新晋KubeSphereCon......
  • 动图展示10大Git命令
    gitmerge、gitrebase、gitreset、gitrevert、gitfetch、gitpull、gitreflog……你知道这些git命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章。在本文中,熟知JavaScript、TypeScript、GraphQL、Serverless、AWS、Docker和Golang的21岁年轻软......