美文网首页
创建线程的几种方式

创建线程的几种方式

作者: 糯米团子123 | 来源:发表于2022-11-03 16:35 被阅读0次
  1. 继承Thread类
public class MyThread extends Thread{
    public void run(){
        for (int i = 0;i<10;i++){
            System.out.println(Thread.currentThread()+":"+i);
        }
    }

    public static void main(String[] args) {
        MyThread myThread1 = new MyThread();
        MyThread myThread2 = new MyThread();
        MyThread myThread3 = new MyThread();
        myThread1.start();
        myThread2.start();
        myThread3.start();
    }
}

  1. 实现Runnable接口
public class MyThread implements Runnable{
    @Override
    public void run(){
        for (int i = 0;i<10;i++){
            System.out.println(Thread.currentThread()+":"+i);
        }
    }

    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        Thread thread1 = new Thread(myThread,"线程1");
        Thread thread2 = new Thread(myThread,"线程2");
        Thread thread3 = new Thread(myThread,"线程3");
        thread1.start();
        thread2.start();
        thread3.start();
    }
}
  1. 通过Callable创建线程(异步,可以返回结果)
public class MyThread implements Callable<String> {
    private int count = 20;


    @Override
    public String call() throws Exception {
        for (int i = count ; i > 0 ; i--){
            System.out.println(Thread.currentThread().getName()+"当前数量:"+i);
        }
        return "已无";
    }

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Callable<String> callable = new MyThread();
        FutureTask<String> futureTask = new FutureTask<>(callable);
        Thread thread1 = new Thread(futureTask);
        Thread thread2 = new Thread(futureTask);
        Thread thread3 = new Thread(futureTask);
        thread1.start();
        thread2.start();
        thread3.start();

        System.out.println(futureTask.get());
    }
}
  1. 线程池创建
public static void main(String[] args) throws ExecutionException, InterruptedException {
        // 创建固定数量的线程
        ExecutorService ex = Executors.newFixedThreadPool(5);
        for (int i = 0;i<5;i++){
            ex.submit(new Runnable() {
                @Override
                public void run() {
                    for (int j = 0;j<10;j++){
                        System.out.println(Thread.currentThread().getName()+j);

                    }
                }
            });

        }
        ex.shutdown();
    }

相关文章

  • 线程

    java 中创建线程有哪几种方式? Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定...

  • 创建线程几种方式

    1、继承Thread类 2、实现Runnable接口 推荐:可实现多个接口,而只能继承一个类。 3、应用程序可以使...

  • Future系列(FutureTask)

    一、前言 创建线程有几种方式? 继承 Thread 类 实现 Runnable 接口 但这两种方式创建的线程是属于...

  • Java多线程:线程的创建与启动

    # 面试题: Java中创建线程有几种方式。 不同的创建方式有什么区别。 如何启动一个线程。 # Java中创建线...

  • 线程的几种创建方式

    线程的几种创建方式 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Threa...

  • 创建线程的几种方式

    说道线程,肯定会想到使用 java.lang.Thread.java这个类那么创建线程也主要有2种方式第一种方式:...

  • 几种创建线程的方式

    继承Thread 通过继承Thread类来创建并启动多线程的一般步骤如下1】d定义Thread类的子类,并重写该类...

  • 创建线程的几种方式

    1.通过继承Thread类创建线程类 1.步骤 定义Thread类的子类FirstThread,并重写run()方...

  • 创建线程的几种方式

    创建多线程是为了实现多任务并发执行,从而能够更好地与用户交互,达到更高的效率。 创建线程常用的方式有四种:1、继承...

  • 创建线程的几种方式

    继承Thread类 实现Runnable接口 通过Callable创建线程(异步,可以返回结果) 线程池创建

网友评论

      本文标题:创建线程的几种方式

      本文链接:https://www.haomeiwen.com/subject/imjetdtx.html