0
点赞
收藏
分享

微信扫一扫

线程创建方式

Jonescy 2022-01-22 阅读 54

1.继承Thread类

2.它接收一个 Runnable 接口,我们只需要提供一个 Runnable接口,并重写run方法即可。

public class Test3 {
public static void main(String[] args) {
new Thread(new Music()).start();
}
}
class Music implements Runnable {
@Override
public void run() {
while (true) {
System.out.println("唱歌..");
}
}
}

3.实现Callable接口

Callable接口实现多线程的方式比较复杂,但是却能解决不少问题,实现流程如下。 创建Callable接口的实现类 ,并实现Call方法 创建Callable实现类的实现,使用FutureTask类包装Callable对象,该FutureTask对象封装了 Callable对象的Call方法的返回值 使用FutureTask对象作为Thread对象的target创建并启动线程 调用FutureTask对象的get()来获取子线程执行结束的返回值

package com.wzk.unit1;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class futureTask {
    public static void main(String[] args) {
        Callable<String>myCallAble = new shopping();
        FutureTask<String> futureTask = new FutureTask<>(myCallAble);
        Thread thread = new Thread(futureTask);
        thread.start();
        Map<String,Object>m=new HashMap<>();
        try {
            String s = futureTask.get();
            System.out.println(s);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}

class shopping implements Callable<String>{

    @Override
    public String call() throws Exception {
        Thread.sleep(10000);
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new
                Date()) + "空调送到家啦";
    }

}
举报

相关推荐

0 条评论