面试常问问题——多线程,如何给run方法传参,如何实现线程的返回值

本文探讨了如何在多线程环境中给run方法传递参数,包括构造函数、成员变量和回调函数的方式。同时,详细介绍了处理线程返回值的策略,如主线程等待法、使用Thread.join()以及通过Callable接口结合FutureTask或线程池实现,特别指出在使用这些方法时需要注意的资源占用和版本要求问题。
摘要由CSDN通过智能技术生成

如何给run方法传参?

(1)构造函数传参
(2) 成员变量传参
(3) 回调函数传参

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

(1)主线程等待法

public class CycleWait implements Runnable{
    private  String value;
    @Override
    public void run() {
        try{
            Thread.currentThread().sleep(5000);
        }catch (InterruptedException e) {
            e.printStackTrace();
        }
        value="we have data now";
    }

    public static void main(String[] args) throws InterruptedException {
        CycleWait cycleWait=new CycleWait();
        //给方法附上多线程的属性。
        Thread thread =new Thread(cycleWait);
        thread.start();
        //cycleWait.value主线程执行到这里的时候有可能子线程还没有获取到值,所以需要在值为空的时候,让主线程等待。
        int i=0;
        while (cycleWait.value==null){
            //主线程等待法
		        Thread.currentThread().sleep(100);
		 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值