`
liuxiang123
  • 浏览: 29723 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

多线程中join的用法

阅读更多

join(long millis)在jdk里是这样定义的等待该线程终止的时间最长为 millis 毫秒。超时为 0 意味着要一直等下去。直接看代码

public class JoinTest implements Runnable {

 private static int a = 0;
 public void run() {
  while(a<10000000){
   a++;
  }
 }
 
 public static void main(String[] args) {
  Thread t = new Thread(new JoinTest());
  t.start();
  System.out.println(a);
 }
}

此处a将打印什么,在多线程环境中在t线程和主线程是同步执行的。所以在t执行到一部分的时候就执行了打印。接下来我们加入join的代码如下

 

public class JoinTest implements Runnable {

 private static int a = 0;
 public void run() {
  while(a<10000000){
   a++;
  }
 }
 
 public static void main(String[] args) {
  Thread t = new Thread(new JoinTest());
  t.start();
  try {
   //t.sleep(1);
   t.join(12);   //////
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
  System.out.println(a);
 }
}

这里的join的意思就是将等待t线程执行12毫秒后再执行主线程。换言之就是加入join后将异步执行的线程变成了同步。

 

分享到:
评论

相关推荐

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    Java线程中wait、await、sleep、yield、join用法汇总,文章里面总结了这些关键字的用法,并且里面带有源码帮助分析用法,此一文就可以理解这些关键字用法,推荐拥有

    对python 多线程中的守护线程与join的用法详解

    多线程:在同一个时间做多件事 守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.setDaemon(True),要在thread.start()之前设置,默认是false的,也就是主线程...

    基于多线程中join()的用法实例讲解

    下面小编就为大家带来一篇基于多线程中join()的用法实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    多线程机制

    多线程机制 1 1、 Runnable接口与Thread类 1 2、 两个创建线程方法的比较 3 3、 几个常用的改变线程状态的方法 3 4、 线程的同步机制 8 ...10、 Callable结合FutureTask的多线程使用(免打扰模式) 24

    C#多线程之Thread中Thread.Join()函数用法分析

    主要介绍了C#多线程之Thread中Thread.Join()函数用法,实例分析了Thread.Join()方法的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下

    Python多线程中阻塞(join)与锁(Lock)使用误区解析

    主要为大家详细介绍了Python多线程中阻塞join与锁Lock的使用误区,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    多线程API.zip

    常见的多线程API和用法 pthread_self函数 pthread_create函数 pthread_exit函数 pthread_join函数 pthread_detach函数 pthread_equal函数

    NET多线程同步方法详解

    直接接入主题,在多线程开发的应用中,线程同步是不可避免的。在.Net框架中,实现线程同步主要通过以下的几种方式来实现,在MSDN的线程指南中已经讲了几种,本文结合作者实际中用到的方式一起说明一下。 1. 维护...

    多线程并发代码的IntelliJ IDEA中调试方法.docx

    上面的代码解释 开启两个线程,“Thread 1”计算(100!)和“Thread 2”计算(100000!) 在main()方法中启动两个线程,然后调用thread1.join()和...下面就让我们使用IntelliJ IDEA工具来调试这段多线程的代码。

    java Fork Join框架及使用

    java Fork Join框架及使用,java自带的多线程框架,来处理多线程的问题

    c++11多线程编程

    c++11多线程库的使用,主要介绍了thread类中的构造函数 join函数和detach函数的使用方式

    Python多线程threading join和守护线程setDeamon原理详解

    某些场景下我们可以使用多线程来达到提高程序执行效率的目的,下面就多线程的一些基础知识做简要说明 简单的多线程 import threading, time def test1(x): time.sleep(5) print(x**x) #下面定义两个线程调用...

    hash join算法

    多用户情况下hash join算法的实现,英语版

    Java学习源码Java多线程的代码

    如何使用多线程 如何得到多线程的一些信息 如何停止线程 如何暂停线程 线程的一些其他用法 在char02包里放置了Java对变量和对象并发访问的知识的代码。内容如下: 对于方法的同步处理 对于语句块的同步处理...

    Java多线程中关于join方法的使用实例解析

    本文通过实例代码给大家实例介绍了Java多线程中关于join方法的使用,非常不错,具有参考借鉴价值,需要的朋友参考下

    Java高级程序设计-多线程(二).pptx

    第3章 多线程(二) Java 高级程序设计 Java高级程序设计-多线程(二)全文共34页,当前为第1页。... 3.1.2 同步代码块的使用 Java中多线程中引入了同步监视器,使用同步监视器的常用方式是使用同步代码块,保

    个人总结的深入java多线程开发

    看完《think in java》多线程章节,自己写的多线程文档,还结合了其他的相关网络资料。 线程 一. 线程池 1)为什么要使用线程池 2 2)一个具有线程池的工作队列 3 3)使用线程池的风险: 4 4)有效使用线程池的原则 5...

Global site tag (gtag.js) - Google Analytics