多线程(三) 控制线程之join线程
来源:互联网 发布:mac上怎么使用git 编辑:程序博客网 时间:2024/06/07 21:10
Java的线程支持提供了一些便捷的工具方法,通过这些便捷的工具方法可以很好地控制线程的执行。
Thread提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()加入的join()线程执行完为止。
join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有的小问题都得到处理后,再调用主线程来进一步操作。
package gblw.fisrt;public class JoinThread extends Thread{//提供一个有参数的构造器,用于设置该线程的名字public JoinThread(String name){super(name);}//重写run()方法,定义线程执行体public void run(){for(int i=0;i<100;i++){System.out.println(getName()+" "+i);}}public static void main(String[] args) throws InterruptedException {//启动子线程new JoinThread("新线程").start();for(int i=0;i<100;i++){if(i==20){JoinThread jt=new JoinThread("被Join的线程");jt.start();//main线程调用了jt线程的join()方法,main线程//必须等jt执行结束才会向下执行jt.join();}System.out.println(Thread.currentThread().getName()+" "+i);}}}join()方法有如下三种重载形式。
A、join():等待被join()的线程执行完成。
B、join(long millis):等待被join的线程的时间最长为millis毫秒。如果在millis毫秒内被join的线程还没有执行结束,则不再等待。
C、join(long millis,int nanos):等待被join的线程的时间最长为millis毫秒加nanos毫微秒。
通常很少使用第三种 形式,原因有两个:程序对时间的精度无须精确到毫微秒;计算机硬件、操作系统本身也无法精确到毫微秒。
0 0
- 多线程(三) 控制线程之join线程
- 多线程(三)线程控制之线程睡眠
- 多线程(三)线程控制之线程让步
- 多线程(三)线程控制之线程优先级
- 控制线程---join线程
- 线程控制--join线程
- 多线程入门教程(三)线程控制
- 多线程入门教程(三)线程控制
- 多线程(三)线程控制之后台线程
- 线程(一)--线程控制-join方法
- 深入浅出Win32多线程程序设计之线程控制 三
- 多线程_线程控制之休眠线程
- 多线程_线程控制之加入线程
- 多线程_线程控制之礼让线程
- 多线程_线程控制之守护线程
- 多线程_线程控制之中断线程
- 多线程-线程控制之休眠线程
- 多线程-线程控制之加入线程
- 包扫描注解
- 简单端口扫描器Python实现(附Python-Nmap简单使用)
- java 几种简单的排序(插入排序,冒泡排序,选择排序)
- Android中的Bitmap.Config ARGB_8888
- 禁止StatusBar展开
- 多线程(三) 控制线程之join线程
- Android性能分析-traceview
- C#入门8.2——方法的声明及调用(2)
- java引用的类型
- 快速解析数据结构
- jQuery.nicescroll美化滚动条
- 算法学习—费用流
- ReseverLink
- easyui中如何禁用tab选项卡的f5以及enter建