栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java线程的创建方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java线程的创建方式

线程

创建:

1 继承Thread类

2 实现Runnable接口

3 实现Callable接口,通过FutureTask包装器实现(有返回值)

        public class CallableDemo implements Callable {
    @Override
    public Object call() throws Exception {
        int sum=0;
        for (int i = 0; i < 100; i++) {
            System.out.println(i);
            sum+=i;
        }
        return sum;
    }
}
​
        CallableDemo cd = new CallableDemo();
        FutureTask ft = new FutureTask(cd);
        new Thread(ft).start();
        System.out.println(ft.get());

4 使用线程池(开发最常用)

好处:减少资源消耗 提高运行速度 便于管理

实现方式:可以通过Runnable和Callable实现

public class CallableDemo implements Callable {
    @Override
    public Object call() throws Exception {
        int sum=0;
        for (int i = 0; i < 100; i++) {
            System.out.println(i);
            sum+=i;
        }
        return sum;
    }
}
​
//        通过Executors.newFixedThreadPool()来创建一个可以装下10个线程的池子ExecutorService对象。。
        ExecutorService executorService = Executors.newFixedThreadPool(10);
//如果想要设置线程池的一些属性,可以将executorService强转为ThreadPoolExecutor     
//        ThreadPoolExecutor的父类AbstractExecutorService实现了ExecutorService接口
        ThreadPoolExecutor serivce= (ThreadPoolExecutor) executorService;
//        通过executorService.submit创建一个future类型的对象
        
//        executorService.execute();可以创建一个Runnable类型的线程..
        FutureTask submit = (FutureTask) serivce.submit(new CallableDemo());
        System.out.println(submit.get());
//        关闭线程池..必须调用,如果不关闭线程池,则该线程会一直存在。。
        executorService.shutdown();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871417.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号