t1.join();

在谁里面调用就把谁阻塞

join()方法的作用,是等待这个线程结束;

也就是说,t.join()方法 阻塞调用此方法的线程(calling thread)进入 TIMED_WAITING 状态,直到线程t完成,此线程再继续;

通常用于在main()主线程内,等待其它线程完成再结束main()主线程。

t1.join在main里面执行的,所以main线程被阻塞了,直到t1线程执行完毕,才执行main函数的线程

public class lx01 {

/*

* 实现多线程的两种方法

* 1、继承Thread类

* 2、实现Runnable接口(推荐使用)

* */

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println(Thread.currentThread().getName());

MyThread t1= new MyThread();

t1.start();

//System.out.println("isAlive: "+t1.isAlive());

MyRunnable r = new MyRunnable();

Thread t2 =new Thread(r);

System.out.println("isAlive: "+t2.isAlive());//false

t2.start();

System.out.println("isAlive: "+t2.isAlive());//true

for(int i=0;i<10;i++)

{

try {

System.out.println(System.currentTimeMillis()+"-"+i+"--"+Thread.currentThread().getName());

Thread.sleep(500);

} catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if(i==6)

{

try {

t1.join();/*

在谁里面调用就把谁阻塞

join()方法的作用,是等待这个线程结束;

也就是说,t.join()方法 阻塞调用此方法的线程(calling thread)进入 TIMED_WAITING 状态,直到线程t完成,此线程再继续;

通常用于在main()主线程内,等待其它线程完成再结束main()主线程。

t1.join在main里面执行的,所以main线程被阻塞了,直到t1线程执行完毕,才执行main函线程*/

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

static class MyThread extends Thread //Thread就是继承Runnable

{

public void run()

{

for(int i=0;i<10;i++)

{

try {

Thread.sleep(500);

} catch (InterruptedException e) {//中断异常

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(System.currentTimeMillis()+"-"+i+"--"+Thread.currentThread().getName());

}

}

}

//轻耦合,实现Runnable接口的方式启动线程

static class MyRunnable implements Runnable

{

@Override

public void run() {

// TODO Auto-generated method stub

for(int i=0;i<10;i++)

{

try {

Thread.sleep(500);

} catch (InterruptedException e) {//中断异常

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(System.currentTimeMillis()+"-"+i+"--"+Thread.currentThread().getName());

}

}

}

/*

* 推荐第二种 方法

* 第一种已经继承了Thread类,无法继承其他类,如果第二种还可以继承其他类

*

*/

}

android java join_java中的join用法相关推荐

  1. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  2. Java程序中Timer的用法

    Java程序中Timer的用法 import java.io.IOException; import java.util.Timer; public class CheckTimer {/*** @p ...

  3. java stream中Collectors的用法

    文章目录 简介 Collectors.toList() Collectors.toSet() Collectors.toCollection() Collectors.toMap() Collecto ...

  4. Shell中的join用法

    Shell中的join用法 将两个文件里指定栏位置同样的行连接起来, 即依照两个文件中共同拥有的某一列, 将相应的行拼成一行(原文件不改变) 内连接(忽略不匹配的行) join file1 file2 ...

  5. MySQL中Left Join用法

    MySQL中Left Join用法  例子:  user表:  id name  ---------  1 libk  2 zyfon  3 daodao  user_action表:  user_i ...

  6. java项目中enum的用法_java中enum的用法

    本文实例讲述了java中enum的用法.分享给大家供大家参考.具体分析如下: 1. 基本用法 enum Day { SUNDAY, MONDAY, TUESDAY, WENDSDAY, THURSDA ...

  7. 模拟做饭系统(java+线程中的join方法)

    (一)项目框架分析 妈妈要去做饭,发现没有酱油,让儿子去买酱油,然后回来做饭. 根据面向对象的思想,有两个对象,妈妈和儿子 主要有两个方法: (一)没有线程控制(即儿子没有买酱油回来妈妈就做好饭了)+ ...

  8. java jna_Java中jna的用法

    (1)jna是对jni的封装,让java使用者能更好的使用本地的动态库 (2)使用jna需要下载jna的jar包,该jar包就是对jni的封装,所以在调用效率上来讲,jna是要比jni低一点的,不过对 ...

  9. 【python】python中的join用法

    目录 python中的join python中的os.path.join python中的join str. join(): 返回一个由 iterable 中的字符串拼接而成的字符串. 如果 iter ...

最新文章

  1. 2019半年总结:Teams are powerful
  2. 等差数列末项_等差数列末项(第n项)公式
  3. chrome正受到自动软件的控制_谷歌优化Chrome Omnibox自动完成功能 使其更加智能
  4. ES关于文档的基本操作
  5. 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)
  6. LeetCode 1058. 最小化舍入误差以满足目标(排序+贪心)
  7. MySQL启动关闭服务巨慢,这样解决!
  8. Unity开发《一起来捉妖》教程 | 1.陀螺仪控制相机
  9. [转载] numpy.argmin 使用
  10. 华中科技大学2005年计算机组成原理试题,华中科技大学2005年计算机组成原理试题...
  11. yaahp层次分析法步骤_什么是层次分析法?(文末附yaahp软件)
  12. 体外肿瘤细胞敏感性分析试剂盒 实验原理
  13. android 如何发送短信,如何在android中发送短信
  14. UVALive 6198 A Terribly Grimm Problem
  15. jfreechart-x轴刻度倾斜45度
  16. c# 贪婪匹配 html,C#正则表达式之贪婪模式
  17. php扩展-ioncube组件的安装方法_如何安装ioncube扩展
  18. 神武服务器维护打副本,9月9日服务器例行维护公告
  19. MySQL游标无法获取数据-1329 - No data - zero rows fetched, selected, or processed
  20. spring AOP中 aop:advisor 与 aop:aspect 的区别

热门文章

  1. LOGO设计的五大基础原则
  2. IT项目管理复习题目整理一
  3. python读取json数据的key值_jquery中怎么获取json的key值?
  4. UML—机房收费系统
  5. 如何做一个小程序商城,需要多少钱
  6. cache在计算机中代表什么,cache是什么意思,计算机中cache是什么意思
  7. python利用以下公式求π的值_Python 计算 π 值的简单示例
  8. JS 实现GOOGLE地图线路规划
  9. 金山办公2020笔试
  10. Java思想进阶之设计模式解析前篇(七大原则)