有时效的 join


有时效的 join 若等待的时间超过线程执行的时间,那么在线程执行完之后就后执行后边了,不会等到设置的时间。

static int r1 = 0;
static int r2 = 0;
public static void main(String[] args) throws InterruptedException {
          
   
 test3();
}
public static void test3() throws InterruptedException {
          
   
 Thread t1 = new Thread(() -> {
          
   
 sleep(1);
 r1 = 10;
 });
 long start = System.currentTimeMillis();
 t1.start();
// 线程执行结束会导致 join 结束
 t1.join(1500);
 long end = System.currentTimeMillis();
 log.debug("r1: {} r2: {} cost: {}", r1, r2, end - start);
}
20:48:01.320 [main] c.TestJoin - r1: 10 r2: 0 cost: 1010
static int r1 = 0;
static int r2 = 0;
public static void main(String[] args) throws InterruptedException {
          
   
 test3();
}
public static void test3() throws InterruptedException {
          
   
 Thread t1 = new Thread(() -> {
          
   
 sleep(2);
 r1 = 10;
 });
 long start = System.currentTimeMillis();
 t1.start();
 // 线程执行结束会导致 join 结束
 t1.join(1500);
 long end = System.currentTimeMillis();
 log.debug("r1: {} r2: {} cost: {}", r1, r2, end - start);
}

//20:52:15.623 [main] c.TestJoin - r1: 0 r2: 0 cost: 1502

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/291110.html

(0)
上一篇 2022年10月15日
下一篇 2022年10月15日

相关推荐

发表回复

登录后才能评论