`
dannyhz
  • 浏览: 392893 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

线程等待join

 
阅读更多
package com.test.base.thread;

import junit.framework.Assert;

import org.junit.Test;

public class TestThread {
	
	@Test
	public void testJoinMethod(){
		Thread t1 = new Thread(new R1(100));
		Thread t2 = new Thread(new R1(1000));
		
		t1.start();
		t2.start();
		
		
		try {
			t1.join();
			t2.join();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		System.out.println("Complete");
		while(true){
			;
		}
		
	}
	
	class R1 implements Runnable{
		
		int max_num = 100;
		
		public R1(int maxNum){
			max_num = maxNum;
		}
		
		public void run() {
			for(int i=0; i< max_num; i++){
				System.out.print((Thread.currentThread().getId()%2 == 1)? "$$" : "**" );
				System.out.println("[ Id = " + Thread.currentThread().getId() + " = " + i + "]") ;
			}
			
		}
		
	}
	
	
}


分享到:
评论

相关推荐

    C++ 等待线程结束

    在上面的例子中,`worker.join()`调用就是用来等待`worker`线程结束的关键。`join()`函数会阻塞调用线程(这里是主线程)直到被join的线程(`worker`线程)执行完毕。这意味着主线程会暂停执行,直到`workerFunction...

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

    Java线程中的`join()`方法是一个非常重要的同步工具,它允许一个线程(通常为主线程)等待另一个线程(子线程)执行完成后再继续执行。`join()`方法定义在`java.lang.Thread`类中,它使得多线程间的协作更加有序。 ...

    多线程面试专题及答案

    2. Thread.join():加入到当前线程,使得当前线程等待join线程结束后再继续执行。 3. Condition接口:配合Lock使用,提供更灵活的线程通信方式。 五、并发工具类 1. ExecutorService和ThreadPoolExecutor:管理...

    Python语言基础:线程等待.pptx

    线程等待就是一种解决这种问题的方法,确保一个线程完成其任务后再执行其他线程。 在描述的示例中,我们首先导入了`threading`和`time`模块。定义了一个名为`thread_job`的函数,它打印"T1 start",然后暂停0.1秒,...

    Java多线程--等待所有子线程执行完的五种方法.docx

    `CountDownLatch`是Java并发包(`java.util.concurrent`)中的一个工具类,它允许一个或多个线程等待其他线程完成操作。创建一个计数器为N的`CountDownLatch`,每当一个线程完成其任务时,都会调用`countDown()`,...

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

    `Semaphore`信号量控制对有限资源的访问,`CountDownLatch`计数器用于等待一组线程完成操作,`CyclicBarrier`循环栅栏允许一组线程等待彼此到达某个点后再继续执行,而`Phaser`是Java 7引入的更高级的同步工具。...

    线程创建,线程等待与清除,thread_clean.c,thread_create.c,thread_create.c,thread_exit_struct.c,thread_id.c,thread_int.c, thread_join.c, thread_join.c, thread_string.c, thread_struct.c

    线程等待通常指的是一个线程(父线程)等待另一个线程(子线程)完成其工作,这通常通过`pthread_join()`函数实现,如`thread_join.c`所示。`pthread_join()`让调用线程阻塞,直到指定的线程结束。线程清除,或线程...

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

    join()方法是Thread类中的一个实例方法,当一个线程A执行了threadB.join()操作时,线程A会等待线程B执行完成后才继续执行。这通常用于需要等待子线程完成之后才继续执行的情况。 以上就是对Java线程中wait、await、...

    13第十三章多线

    - `Thread.join()`:当前线程等待join线程结束后再继续执行。 - `Thread.yield()`:暂停当前正在执行的线程对象,并执行其他线程。 - `Thread.currentThread()`:返回当前线程的引用。 - `Thread.interrupt()`:中断...

    浅谈java线程join方法使用方法

    在Java中,线程join方法的作用是使当前线程等待另一个线程的结束,然后再继续执行当前线程的任务。 在Java中,线程join方法可以通过两种方式来实现,一种是使用Thread类的join方法,另一种是使用Thread类的wait和...

    Java简单实现“主线程等待所有子线程完成再继续”

    `CyclicBarrier`则允许一组线程等待其他线程到达一个公共屏障点,而`Semaphore`则可以用来控制同时访问特定资源的线程数量。 总的来说,Java提供了丰富的多线程同步机制,可以根据实际需求选择合适的方法来实现...

    vc中获取一个线程的状态及返回值

    - 使用`std::thread`,线程创建和状态查询可以变得更加简洁,例如`std::thread::join()`用于等待线程结束,`std::thread::joinable()`检查线程是否可以被等待。 7. **界面交互**: - 在GUI应用程序中,如VS2012...

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

    `thread.join()`方法用于等待指定线程结束。在主程序中调用`join()`方法后,主线程会阻塞,直到调用`join()`的线程执行完毕。这样可以确保主线程不会在子线程完成之前结束。如果不使用`join()`,子线程可能会在主线...

    C++ 如何正确的使用线程 释放线程资源

    1. **Joinable状态**:线程默认创建时即处于joinable状态,意味着线程一旦完成执行,它的资源并不会自动释放,需要其他线程(通常是主线程)调用pthread_join()函数等待该线程的结束,并获取其返回值。这样做的好处...

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法、yield()方法、join方法、interrupt()方法

    线程的合并是指一个线程等待另一个线程执行完毕后再继续执行。在Java中,可以使用Thread类的join()方法实现线程的合并。 线程的中断是指在一个线程中断另一个线程的执行。在Java中,可以使用Thread类的interrupt()...

    Java线程中yield与join方法的区别Java开发J

    `join`方法的作用是等待指定线程执行完毕后再继续执行当前线程。它可以确保当前线程在调用`join`的线程执行完其所有任务后才继续执行,从而实现线程间的同步。`join`方法有一个可选的时间参数,可以设置等待的最长...

    线程及线程应用总结

    - `join()`方法:让当前线程等待指定线程结束后再继续执行。 3. **线程状态** - 新建(New):线程被创建但尚未启动。 - 运行(Runnable):线程已启动,等待CPU时间片。 - 阻塞(Blocked):线程被阻塞,如...

    C++如何创建杀死线程

    条件变量允许一个或多个线程等待某个条件满足,而另一个线程则可以通知这些等待线程条件已满足,从而唤醒它们。 ```cpp #include #include std::mutex mtx; std::condition_variable cv; bool done = false; ...

    Java多线程机制(讲述java里面与多线程有关的函数)

    线程联合(Join)是让一个线程等待另一个线程完成后再继续执行,通过调用`join()`方法实现。 9.11 守护线程: 守护线程(Daemon)是一种不阻止程序退出的线程,如垃圾收集器就是守护线程。当所有非守护线程结束时,...

    线程中创建子线程

    // 等待子线程完成 } } int main() { std::thread newThread(createSubThreads, 5); // 创建新线程,创建5个子线程 newThread.join(); // 等待新线程完成 return 0; } ``` 在这个例子中,`main`函数创建了一个...

Global site tag (gtag.js) - Google Analytics