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

Java多线程

Java 更新时间:发布时间: 百科书网 趣学号

 多线程的三种创建方式:

package com.youyou.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ThreadDdemo03 {
    public static void main(String[] args) {
        new MyThread1().start();

        new Thread(new MyThread2()).start();

        //使用Future类来包装Callable对象,该对象封装了Callable对象的call方法的返回值
        FutureTask futureTask = new FutureTask(new MyThread3());
        new Thread(futureTask).start();

        try{
            //获取线程结束后的返回值
            Integer integer = futureTask.get();
        }catch (InterruptedException e){
            e.printStackTrace();
        }catch (ExecutionException e){
            e.printStackTrace();
        }

    }
}




class MyThread1 extends Thread {
    @Override
    public void run() {
        super.run();
        System.out.println("MyThread1");
    }
}



class MyThread2 implements Runnable{
    @Override
    public void run() {
        System.out.println("MyThread2");
    }
}



class MyThread3 implements Callable{
    @Override
    public Integer call() throws Exception {
        System.out.println("MyThread3");
        return 100;
    }
}

Java线程池:

由于经常创建和销毁使用量特别大的资源,比如并发下的线程,对性能的消耗十分大。

可以提前创建多个线程,放入线程池中,使用时直接获取,使用完毕放回。池中。

好处:

1. 提高响应速度(减少了创建线程的时间)。

2. 减少资源消耗(重复利用线程池中的线程,不用每次都创建)。

3. 便于线程管理。

package com.youyou.thread;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadDemo04 {
    public static void main(String[] args) {
        //创建服务,参数为线程池大小
        ExecutorService service = Executors.newFixedThreadPool(10);
        //执行
        service.execute(new MyThread05());
        service.execute(new MyThread05());
        service.execute(new MyThread05());
        service.execute(new MyThread05());
        //关闭连接
        service.shutdown();
    }
}

class MyThread05 implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }
}

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

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号