美文网首页
17,线程4-Join方法

17,线程4-Join方法

作者: 旅程中 | 来源:发表于2018-10-12 13:50 被阅读0次

在某些情况下,主线程创建并启动了子线程,如果子线程中需要进行大量的耗时运算,主线程往往将早于子线程结束之前结束,如果主线程想等待子线程执行完毕后,获得子线程中的处理完的某个数据,就要用到join方法了,方法join()的作用是等待线程对象呗销毁。

public class AccountingSync implements Runnable
{
    //共享资源(临界资源)
     static int i=0;

    /**
     * synchronized 修饰实例方法
     */
    public  void increase(){
        synchronized(this)
        {
            i++;
        }

    }
    @Override
    public void run() {
        for(int j=0;j<1000000;j++){
            increase();
        }
    }
    public static void main(String[] args) throws InterruptedException {
        AccountingSync instance=new AccountingSync();
        Thread t1=new Thread(instance);
        Thread t2=new Thread(instance);
        t1.start();
        t2.start();
        t1.join(1);//主线程要等待t1线程执行完毕
        t2.join(100);
        System.out.println(i);
    }

}
    /**
     * 输出结果:
     * 2000000
     */

join底层是wait方法,所以它是会释放对象锁的,而sleep在同步的方法中是不释放对象锁的,只有同步方法执行完毕,其他线程才可以执行。

(1).myThread.join();//不指定当前线程wait的时间,这会导致当前线程一直阻塞至myThread执行完毕
(2).myThread.join

(long time);//指定当前线程wait时间,这回导致当前线程一直阻塞time毫秒或者myThread执行完毕
void join(long millis, int nanos)
等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。

相关文章

  • 17,线程4-Join方法

    在某些情况下,主线程创建并启动了子线程,如果子线程中需要进行大量的耗时运算,主线程往往将早于子线程结束之前结束,如...

  • Thread

    2019-10-17 sleep sleep()是线程线程类(Thread)的方法,调用会暂停此线程指定的时间,但...

  • java多线程基础

    多线程 线程,进程,多线程 一、java线程 1. 线程状态 2. 线程方法 方法说明setPriority(in...

  • GCD

    多线程 NSTheard :alloc init 方法创建线程 。 start 方法启动线程 。然后系统会管理线程...

  • Java程序员福利——阿里架构师详解Java多线程常用方法的使用

    前言 Java多线程的常用方法基本分为:获取当前线程的操作,线程休眠sleep()方法,线程让步yield()方法...

  • 多线程 - NSThread

    创建和启动线程简单说明 1.创建,启动线程 1.1创建线程(3中方法) 方法1: 方法2: 方法3: 线程参数设置...

  • 1 多线程基础和Sync

    目录 进程、线程概念 创建线程的方法 线程常用方法 线程同步:Sync 1 进程线程概念 1.1 进程 进程指的是...

  • Java基础之线程

    一、线程分类 二、线程的实现方式 三、线程的状态 四、线程的核心方法 sleep()方法:该方法属于Thread类...

  • Java线程join()

    join 方法是一个阻塞方法,用来进行线程之间的交流。线程 A 调用 线程 B 的 join 方法,则线程 A 将...

  • Java start和run两种启动线程方式

    start方法和run方法启动线程 start()方法源码: 将该线程加入线程组 启动新线程 处于就绪状态,等待C...

网友评论

      本文标题:17,线程4-Join方法

      本文链接:https://www.haomeiwen.com/subject/khxgaftx.html