实现线程的几种方式

Posted pangdajin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现线程的几种方式相关的知识,希望对你有一定的参考价值。

1.Thread类,单继承的方式得到线程子类,定死了结构方法.

class MyThread extends Thread{

@override

run(){

}

}

2.Runnable接口,灵活,真正体现了多线程共享数据的模式。

new Runnable(){

@override

run(){

}

};

3.Callable 接口,java.util.concurrent.FutrueTask

class ThreadDemo implments Callable<Integer>{

@Overrid

public Integer call(){

int num = 0;

for(int i=o;i<100;i++){

num+=num+i;

return num;

}

}

}

public class TestCallable {
 
    public static void main(String[] args) {
        ThreadDemo td = new ThreadDemo();
 
        //1.执行 Callable 方式,需要 FutureTask 实现类的支持,用于接收运算结果。
        FutureTask<Integer> result = new FutureTask<>(td);
 
        new Thread(result).start();
 
        //2.接收线程运算后的结果
        try {
            Integer sum = result.get();  //FutureTask 可用于 闭锁 类似于CountDownLatch的作用,在所有的线程没有执行完成之后这里是不会执行的
            System.out.println(sum);
            System.out.println("------------------------------------");
        catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
 
}

 

以上是关于实现线程的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

C# Thread开启线程的几种方式

线程的几种实现方式

多线程的几种实现方式

实现线程的几种方式

java多线程---创建线程的几种方式

JAVA多线程实现的几种方式