`
liuxiang123
  • 浏览: 30473 次
  • 性别: 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()。这些方法各自有独特的用途和不同的工作机制。 一、wait()、notify()、...

    多线程例子 演示多线程使用

    在计算机编程中,多线程是一种并发执行任务的技术,它允许多个子任务在同一时间运行,从而提高了程序的效率和响应性。这个“多线程例子”演示了如何在C++环境中实现多线程功能。下面我们将深入探讨多线程的基本概念...

    C++在多线程中使用mciSendString播放音乐demoB

    本示例"C++在多线程中使用mciSendString播放音乐demoB"着重于如何在多线程环境下利用Windows Multimedia Control Interface (MCI) 函数mciSendString来实现音乐播放。下面我们将深入探讨这两个关键概念。 首先,多...

    多线程测试(是多线程的测试,对学习多线程的朋友有用)

    在C#中,`System.Threading`命名空间是进行多线程编程的核心,它包含了创建和管理线程所需的各种类和接口。例如,`Thread`类代表了一个独立的执行线程,你可以通过创建它的实例并调用`Start`方法来启动一个新的线程...

    Java线程之join_动力节点Java学院整理

    `join()`方法定义在`java.lang.Thread`类中,它使得多线程间的协作更加有序。 首先,我们来看`join()`的基本用法。在`Father`类(主线程类)中,创建了一个`Son`类(子线程类)的实例`s`,并调用`s.start()`启动子...

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

    本篇文章将详细讲解Python多线程中的两个关键概念:守护线程(Daemon Thread)和join()方法。 1. **守护线程(Daemon Thread)**: 守护线程是一种特殊的线程,它的生命周期与主线程密切相关。默认情况下,当主线...

    PB多线程实现

    在PB9中,虽然官方并未直接支持多线程,但开发者可以通过使用Windows API函数来实现。一种常见的方式是创建一个新的窗口类,该窗口类在不同的线程上运行。通过调用如CreateThread或BeginThread等API函数,可以在新的...

    C#(asp.net)多线程用法示例(可用于同时处理多个任务)

    需要注意的是,当在ASP.NET环境中使用多线程时,必须谨慎处理资源的同步问题,因为Web应用程序的请求是异步的,多个线程可能同时访问共享资源。如果没有适当的同步机制(如锁或Monitor),可能会导致数据不一致或...

    演示PB如何实现多线程

    在PowerBuilder(PB)开发环境中,多线程技术是一种关键特性,它允许应用程序同时执行多个独立的任务,提高程序...在实际应用中,开发者应根据需求设计复杂的多线程逻辑,合理使用同步机制,以确保程序的稳定性和性能。

    【IT十八掌徐培成】Java基础第08天-02.多线程-join-daemon-同步.zip

    在Java中,`join()`、`daemon`线程以及同步机制是多线程编程中的重要概念,对于理解和编写高效的并发代码至关重要。 首先,我们来讨论`join()`方法。在多线程环境中,有时候我们需要确保一个线程在执行完它的任务后...

    C# 多线程实例多线程实例多线程实例

    在编程领域,多线程是实现并发执行任务的关键技术,特别是在C#这样的语言中,它提供了丰富的多线程支持。本文将深入探讨C#中的多线程实例,以帮助开发者理解如何有效地利用多核处理器资源,提高程序的执行效率。 多...

    python selenium chrome 多开 多线程

    本主题聚焦于如何使用Python的Selenium与Chrome浏览器进行多开和多线程操作,结合phantomjs和chromedriver这两个关键组件来实现。首先,让我们详细了解一下这些概念。 1. **Selenium**: Selenium是一个强大的Web...

    C#多线程排序例子

    4. **排序算法**:在多线程排序中,可能使用不同的排序算法,如快速排序、归并排序或堆排序。这些算法可以被设计成并行的,通过将大问题分解为小问题并在多个线程中处理,然后将结果合并,从而提高效率。 5. **并行...

    Linux系统下的多线程编程入门.pdf

    本文将深入探讨Linux环境中的多线程概念、创建与管理线程的方法、线程同步与通信机制,以及多线程编程中可能遇到的问题和解决策略。 一、多线程概念 多线程是指在一个进程中可以同时执行多个独立的代码段,每个代码...

    Linux下C语言多线程编程实例

    Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程之间的同步和互斥控制等问题。 在 ...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例)完整源码

    在C#.NET编程环境中,多线程是一种强大的技术,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应性。本资源包含六个完整的多线程实例,涵盖了从基础使用到高级特性的全面实践,例如线程的创建、同步与...

    c++多线程编程的十个例子

    在C++编程中,多线程技术是一种强大的工具,它允许程序同时执行多个任务,从而提高了效率和响应性。以下是对“C++多线程编程的十个例子”的详细讲解,这些例子将帮助你在Windows环境下深入理解和应用多线程。 1. **...

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例).rar

    C#.NET多线程是.NET框架中用于实现并发执行任务的关键技术。在现代软件开发中,多线程已经成为提升程序性能、改善用户体验的重要手段。这个压缩包包含六个C#.NET多线程的实例,涵盖了多线程的基本使用以及互斥等高级...

Global site tag (gtag.js) - Google Analytics