JAVA线程3 如何实现处理线程的返回值

在线程执行过程中可能会存在一个问题,如下所示:在线程中我们更新了线程对象value的值,因为线程是异步执行的,还未等到线程执行完毕,main函数就输出了value值,此时value的值为null。那么我们如何才能让main函数能够在线程完成后再输出更新后的value值呢??

方式1:主线程等待法

方式2:使用Thread类的join()阻塞当前线程以等待子线程处理完毕

join方法

作用:让调用该方法的线程在执行完run()方法后,再执行join方法后面的代码。将两个线程合并,用于实现同步功能。通过A.join()方法来等待线程A的结束,才运行join下面的代码。

方式3:通过Callable接口实现线程:通过FutureTask Or 线程池获取

继承Callable接口实现的线程类,在线程执行时执行类中的call()方法,该方法具有返回值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章