java多线程基础(5)-调度方式之暂停当前线程方式4-连接线程(join)
2016-07-07 15:28
204 查看
一个线程可能需要另一个线程的结果,这是很常见的,例如,web浏览器在一个线程中加载html页面,他可能需要生成一个单独的线程来获取页面中的图片来嵌入到页面中。
那么加载html的这个线程,在结束页面的显示之前,可能必须等待加载到所有的图片。java提供了join方法来实现这种情况,它运行一个线程在继续执行前等待另一个线程结束。
这种方式在jdk1.5没有引入线程池和future接口之前常用,但是现在新的可以使用线程池和future实现。
那么加载html的这个线程,在结束页面的显示之前,可能必须等待加载到所有的图片。java提供了join方法来实现这种情况,它运行一个线程在继续执行前等待另一个线程结束。
这种方式在jdk1.5没有引入线程池和future接口之前常用,但是现在新的可以使用线程池和future实现。
public class JoinThreadTest { public static void main(String[] args) throws InterruptedException { int[] array = new int[10]; MaxArrayNum num= new MaxArrayNum(array); num.start(); num.join();//如果不加上这个操作,则很可能出现数组越界异常 System.out.println("max 0:"+array[0]); System.out.println("max 5:"+array[4]); System.out.println("max 10:"+array[0]); } } class MaxArrayNum extends Thread{ private int[] array; public MaxArrayNum(int[] array){ this.array=array; } public void run(){ for(int i=0;i<10;i++){ this.array[i]=(int)( Math.random()*1000); } System.out.println(array[9]); } }
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- C#实现多线程的同步方法实例分析
- C#线程间不能调用剪切板的解决方法
- 浅谈chuck-lua中的多线程
- C#简单多线程同步和优先权用法实例
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- C#多线程编程中的锁系统(三)
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- 简单对比C#程序中的单线程与多线程设计
- C#停止线程的方法
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- C#子线程更新UI控件的方法实例总结
- C#多线程学习之(六)互斥对象用法实例
- C#线程队列用法实例分析
- 基于一个应用程序多线程误用的分析详解
- C#多线程学习之(三)生产者和消费者用法分析
- C#多线程学习之(一)多线程的相关概念分析
- C#多线程之Thread中Thread.IsAlive属性用法分析
- 分享我在工作中遇到的多线程下导致RCW无法释放的问题