Java join 线程控制用法
JDK说明:
join
public final void join()
throws InterruptedException等待该线程终止。
抛出:
InterruptedException - 如果任何线程中断了当前线程。当抛出该异常时,当前线程的中断状态 被清除
测试代码:
public class MyThread extends Thread {
public static void main(String[] args) throws InterruptedException {
A a=new A();
B b=new B();
a.start();
a.join();
b.start();
}
}
class A extends Thread{
public void run(){
for(int i=0;i<10000;i++){
System.out.print("A "+i);
}
}
}
class B extends Thread{
public void run(){
for(int i=0;i<10000;i++){
System.out.print("B "+i);
}
}
}
可以看出 等线程A 执行完之后 线程B才开始执行
非常清楚是不是呵呵
相关推荐
-
java基本教程之join方法详解 java多线程教程
本章涉及到的内容包括:1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例 1. join()介绍join() 定义在Thread.java中.join() 的作用:让"主线程"等待"子线程"结束之后才能继续运行.这句话可能有点晦涩,我们还是通过例子去理解: 复制代码 代码如下: // 主线程public class Father extends Thread { public void run() {
-
Java线程编程中isAlive()和join()的使用详解
一个线程如何知道另一线程已经结束?Thread类提供了回答此问题的方法. 有两种方法可以判定一个线程是否结束.第一,可以在线程中调用isAlive().这种方法由Thread定义,它的通常形式如下: final boolean isAlive( ) 如果所调用线程仍在运行,isAlive()方法返回true,如果不是则返回false.但isAlive()很少用到,等待线程结束的更常用的方法是调用join(),描述如下: final void join( ) throws InterruptedE
-
java线程之join方法的使用介绍
在上面的例子中多次使用到了Thread类的join方法.我想大家可能已经猜出来join方法的功能是什么了.对,join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法.如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完.而使用join方法后,直到这个线程退出,程序才会往下执行.下面的代码演示了join的用法.
-
Java线程之join_动力节点Java学院整理
join()介绍 join() 定义在Thread.java中. join() 的作用:让"主线程"等待"子线程"结束之后才能继续运行.这句话可能有点晦涩,我们还是通过例子去理解: // 主线程 public class Father extends Thread { public void run() { Son s = new Son(); s.start(); s.join(); ... } } // 子线程 public class Son extends
-
java多线程编程之join方法的使用示例
在上面的例子中多次使用到了Thread类的join方法.我想大家可能已经猜出来join方法的功能是什么了.对,join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法.如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完.而使用join方法后,直到这个线程退出,程序才会往下执行.下面的代码演示了join的用法.
-
Java join 线程控制用法
JDK说明: joinpublic final void join() throws InterruptedException等待该线程终止. 抛出:InterruptedException - 如果任何线程中断了当前线程.当抛出该异常时,当前线程的中断状态 被清除测试代码: 复制代码 代码如下: public class MyThread extends Thread { public static void main(String[] args) throws
-
Java线程调度之线程休眠用法分析
本文实例分析了Java线程调度之线程休眠用法.分享给大家供大家参考.具体分析如下: Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率. 这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制. 线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行. 线程休眠的方法是Thread.sleep
-
四种Java线程池用法解析
本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } } ).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差. b. 线程缺乏统一管理,可能无限
-
Java中线程用法总结
本文实例总结了Java中线程用法.分享给大家供大家参考.具体分析如下: 1.线程是基本调度单元.共享进程的资源,如内存和文件句柄.但有自己的pc(程序计数器),stack(线程栈)及本地变量 2.线程的优势: a) 充分利用多处理器 b) 可以简化模型.特定任务给特定线程.如servlets及rmi等框架. c) 对异步事件的简单处理.如socket,nio使用更复杂.而现在的操作系统支持更大数量的线程. d) 界面的更佳响应 3.内部锁:synchronized块.互斥.可重入(reentra
-
Java线程等待用法实例分析
本文实例讲述了Java线程等待用法.分享给大家供大家参考,具体如下: 线程等待 public class Hello { public static void main(String[] args) { A a = new A(); new Thread(new MyRun(a)).start(); new Thread(new MyRun1(a)).start(); } } class MyRun implements Runnable { private A a; public MyRun(
-
Java中join线程操作实例分析
本文实例讲述了Java中join线程操作.分享给大家供大家参考,具体如下: 一 点睛 Tread提供了让一个线程等待另外一个线程完成的方法--join()方法.当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完后为止. join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程.当所有小问题都得到处理后,再调用主线程来进一步操作. 二 代码 public class JoinThread ext
-
Java使用Condition控制线程通信的方法实例详解
本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下: 一 点睛 当使用Lock对象来保证同步时,Java提供了一个Condition类来保持协调,使用Condition可以让那些已经得到Lock对象.却无法继续执行的线程释放Lock对象,Condtion对象也可以唤醒其他处于等待的线程. Condition 将同步监视锁方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与Lock对象组合使用,为每个对象提供多
-
Java线程池用法实战案例分析
本文实例讲述了Java线程池用法.分享给大家供大家参考,具体如下: 一 使用newSingleThreadExecutor创建一个只包含一个线程的线程池 1 代码 import java.util.concurrent.*; public class executorDemo { public static void main( String[] args ) { ExecutorService executor = Executors.newSingleThreadExecutor(); ex
-
Java守护线程用法实例分析
本文实例讲述了Java守护线程用法.分享给大家供大家参考,具体如下: 一 点睛 针对守护线程,只要有一个用户线程在执行,这个进程就不会结束. 当线程中只剩下守护线程时,JVM会自动退出,反之,如果还有其他任何用户线程存在,JVM都不会退出. 二 代码 public class ThreadDaemon { public static void main( String args[] ) { ThreadTest t = new ThreadTest(); Thread tt = new Thre
-
java ThreadPool线程池的使用,线程池工具类用法说明
实际上java已经提供线程池的实现 ExecutorService. 为了更方便的使用和管理.这里提供一个线程池工具类,方便大家的使用. 直接看看代码: 使用 public static void main(String[] args) { //实例化一个固定数目的线程池.具体参考类的构造方法 ThreadPool threadPool=new ThreadPool(ThreadPool.FixedThread,5); //线程池执行线程 threadPool.execute(new Runna
随机推荐
- asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- 个人用户防黑指南
- Bootstrap table右键功能实现方法
- win2003 服务器安全设置图文教程
- Swift实现快速排序算法的代码示例
- 使用重写url机制实现验证码换一张功能
- JS实现页面载入时随机显示图片效果
- windows server2012无法连接无线网络解决方法(windows无线连接)
- asp.net自定义分页控件示例
- 新版PHP将向Java靠拢
- PHP中Closure类的使用方法及详解
- Python实现的中国剩余定理算法示例
- java文件操作工具类实现复制文件和文件合并
- Android开发之Animations动画用法实例详解
- javascript实现详细时间提醒信息效果的方法
- C#获取文件夹及文件的大小与占用空间的方法
- JavaScript实现99乘法表及隔行变色实例代码
- 用javascript css实现GridView行背景色交替、鼠标划过行变色,点击行变色选中
- C语言数据结构之中缀树转后缀树的实例
- Java interrupt()方法使用注意_动力节点Java学院整理