首页 > 其他分享 >线程执行顺序 join()

线程执行顺序 join()

时间:2024-08-14 11:07:29浏览次数:10  
标签:顺序 join Thread currentThread getName System 线程 out

import lombok.SneakyThrows;

import java.util.concurrent.TimeUnit;

public class T {
    @SneakyThrows
    public static void main(String[] args) {
        Object o = new Object();
        Thread thread1 = new Thread(() -> {
            try {
                System.out.println(Thread.currentThread().getName() + "运行");
                TimeUnit.SECONDS.sleep(2);
                System.out.println(Thread.currentThread().getName() + "运行 over");
            } catch (Exception e) {
                e.printStackTrace();
            }

        }, "线程1");

        Thread thread2 = new Thread(() -> {
            try {
                thread1.join();
                System.out.println(Thread.currentThread().getName() + "运行");
                TimeUnit.SECONDS.sleep(3);
                System.out.println(Thread.currentThread().getName() + "运行over");
            } catch (Exception ex) {

            }
        }, "线程2");

        Thread thread3 = new Thread(() -> {
            try {
                thread2.join();
                System.out.println(Thread.currentThread().getName() + "运行");
            } catch (Exception ex) {

            }
        }, "线程3");

        thread1.start();
        thread2.start();
        thread3.start();
    }
}

标签:顺序,join,Thread,currentThread,getName,System,线程,out
From: https://www.cnblogs.com/goodluckxiaotuanzi/p/18358470

相关文章

  • 线程状态
    阻塞状态importlombok.SneakyThrows;importjava.text.SimpleDateFormat;publicclassT{@SneakyThrowspublicstaticvoidmain(String[]args){newThread(()->{synchronized(T.class){try{......
  • SpringBoot 整合线程池
    分为三步启动类加@EnableAsync注解在方法上加@Async注解创建线程池配置类1.启动类加@EnableAsync注解@SpringBootApplication@EnableAsyncpublicclassFacadeH5Application{publicstaticvoidmain(String[]args){SpringApplication.run(Fac......
  • c++ 线程函数传递数据 namespace
     CMakeLists.txt cmake_minimum_required(VERSION3.10)#Settheprojectnameproject(GlobalMatrixExample)#FindEigenpackagefind_package(Eigen33.3REQUIRED)#Findpthreadpackagefind_package(ThreadsREQUIRED)#Addexecutableadd_executable(g......
  • c# 多线程环境下对共享资源访问的办法
    Monitor:定义:Monitor 是C#中最基本的同步机制,通过 Enter 和 Exit 方法来控制对共享资源的访问。它提供了排他锁的功能,确保在任何时刻只有一个线程可以访问共享资源。优点:简单易用,适合对临界区进行粗粒度的同步控制。缺点:只能实现排它锁,不能实现读写锁,性能相对较低。......
  • 主线程等待所有其他线程执行完毕,然后再继续执行主线程的逻辑,有以下几种方法可以实现:
    ##1.使用`Thread.join()``Thread.join()`方法会让主线程等待被调用线程执行完毕之后再继续执行。####示例代码:```javapublicclassMain{publicstaticvoidmain(String[]args){//创建3个线程Threadthread1=newThread(()->{Syste......
  • 进程线程(2)
    父子进程的关系子进程是父进程的副本。子进程获得父进程数据段,堆,栈,正文段共享。        在fork之后,一般情况哪个会先运行,是不确定的。如果非要确定那个要先运行,需要IPC机制。     区别:fork的返回值pid不同进程的创建创建之后,父子进程各自拥有4g独立的内存......
  • 【JVM】jvm 线程栈的一些设置 Thread Size
    1.概述下面是jvm线程栈的一些设置,简单的了解一下。2.XssXss和ThreadStackSize是等价的参数,用于设置Java线程栈的大小,单位为Kb。在命令行中,-Xss100K和-XX:ThreadStackSize=100是表示相同意义的参数。Xss参数的实现:Xss参数是通过设置ThreadStackSize数据......
  • Java线程池学习
    Java线程池学习一、线程池基础1定义2优点3基本组件二、Java线程池实现1Executor接口2ExecutorService接口3ThreadPoolExecutor类3.1创建线程池实例三、执行策略1直接提交策略(DirectSubmissionExecutor)2固定线程数策略(FixedThreadPool)3缓存线程池策略......
  • C语言-有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见 图8.43。写
    1.题目要求:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见图8.43。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。2.解题思路:可采用指针法,可将数组中最后一位元素的值赋给中间变量暂存,然后将剩余数组中的元素通过指针依次后移一位......
  • C 多线程
    C多线程C程序中经常同时执行多项任务。例如,一个程序可能:(1)在执行程序过程中通过完成并行任务来提高性能。(2)在处理用户输入的同时,在后台进行耗时的数据通信和实时操作。通过并行执行(concurrentexecution)程序中的部分代码,可以实现不同任务同时进行。特别是在多处理器系......