在juc中get与jion的区别
时间: 2024-05-20 09:14:18 浏览: 19
在Java并发编程中,`get()`和`join()`都是用于等待线程执行完成的方法,但是它们之间有一些区别。
1. `get()`方法是`Thread`类中的方法,而`join()`方法是`Thread`类的实例方法。
2. `get()`方法会返回线程执行结束后的结果,而`join()`方法只是等待线程执行结束,不会返回任何结果。
3. `get()`方法可以抛出`InterruptedException`异常,需要进行异常处理,而`join()`方法不会抛出该异常。
4. `get()`方法可以通过`isDone()`方法判断线程是否执行完成,而`join()`方法没有类似的方法。
因此,如果需要等待线程执行完成并获取其结果,可以使用`get()`方法;如果只需要等待线程执行完成,可以使用`join()`方法。
相关问题
JUC的join()
JUC中的join()方法用于等待线程执行完毕。当我们在一个线程A中调用线程B的join()方法时,线程A会被阻塞,直到线程B执行完毕。换句话说,调用join()方法会使得当前线程等待被调用线程执行完成。
在调用join()方法时,可以选择传入一个超时时间参数,表示最多等待多长时间。如果超过指定的时间,线程仍未执行完毕,则当前线程会继续执行。
join()方法的应用场景一般是在多个线程间需要协同工作的情况下。例如,主线程需要等待所有子线程执行完毕后再继续执行,就可以使用join()方法来实现等待子线程的目的。
需要注意的是,join()方法是通过对被调用线程对象调用wait()方法来实现的,因此被调用线程需要在执行完毕后调用notifyAll()方法来唤醒等待该线程的其他线程。
java中juc是什么
JUC(Java.util.concurrent)是Java 5之后提供的一组并发工具类,用于简化多线程编程,提高并发性能和可靠性。JUC提供了丰富的并发工具类,包括原子变量、线程池、并发集合类、同步器、锁等,可以帮助开发者更轻松地实现高效、安全、可靠的并发程序。JUC的设计目标是提高多线程编程的可读性、可维护性和可扩展性,减少由于线程竞争而导致的死锁、饥饿、活锁等问题。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)