创建线程的四种方式(一)

线程:

CPU调度和分配的基本单位,基本不用系统资源,只拥有一点在运行中必不可少的资源

创建线程的四种方式
1. 实现Runnable接口,重写run方法

具体做法:

class RunnableDemo implements Runnable{

    public void run() {
        for (int i = 0, j=10;i<j;i++){
            System.out.println(i);
        }
    }
}

调用:

RunnableDemo runnableDemo = new RunnableDemo();
new Thread(runnableDemo).start();
2. 继承Thread类,重写run方法

具体做法:

class ThreadDemo extends Thread{

    @Override
    public void run() {
        for (int i = 0, j=10;i<j;i++){
            System.out.println(i);
        }
    }
}

调用:

new ThreadDemo().start();
3.实现callable接口,重写call方法
class CallableDemo implements Callable<Integer>{

    public Integer call() {
        int sum = 0;
        for (int i = 0, j=10;i<j;i++){
            System.out.println(i);
            sum+=i ;
        }
        return sum;
    }
}

调用:

		CallableDemo callableDemo = new CallableDemo();
        FutureTask<Integer> futureTask = new FutureTask<Integer>(callableDemo);
        new Thread(futureTask).start();
        System.out.println(futureTask.get());

说明
FutureTask 继承于 RunnableFuture,RunnableFuture 继承于Runnable 所以可以创建线程(多态)
利用 futureTask.get()方式,获取返回值,但是线程并不会启用

学习年限不足,知识过浅,说的不对请见谅。

世界上有10种人,一种是懂二进制的,一种是不懂二进制的。

发布了71 篇原创文章 · 获赞 54 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/weixin_43326401/article/details/104095849