码迷,mamicode.com
首页 > 编程语言 > 详细

实现线程的几种方式

时间:2018-06-27 00:51:35      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:except   闭锁   x11   共享数据   exe   count   string   线程   共享   

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();
        }
    }
 
}

 

实现线程的几种方式

标签:except   闭锁   x11   共享数据   exe   count   string   线程   共享   

原文地址:https://www.cnblogs.com/pangdajin/p/9231868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!