zoukankan      html  css  js  c++  java
  • 实现线程的几种方式

    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();
            }
        }
     
    }
  • 相关阅读:
    Oracle数据库ORA-12154: TNS: 无法解析指定的连接标识符详解
    Oracle Client客户端+PLSQL配置
    函数和存过的创建调用
    MVC学习二:基础语法
    前台和后台的相互传值
    MVC学习一:EF
    博客转发小工具2
    博客转发小工具1
    博客园页面设置
    js问题杂记
  • 原文地址:https://www.cnblogs.com/pangdajin/p/9231868.html
Copyright © 2011-2022 走看看