21xrx.com
2024-12-23 00:20:26 Monday
登录
文章检索 我的文章 写文章
Java线程创建的三种方式及其使用场景
2023-06-17 14:09:35 深夜i     --     --
Java线程 继承Thread 实现Runnable Callable和Future

Java是一种多线程的编程语言,线程是Java中重要的概念。线程允许程序在多个执行路径上运行。在Java中,线程的创建有三种方式。

1. 通过继承Thread类

创建一个线程类,继承Thread类,并实现run()方法,在run()方法中编写线程的执行代码。使用start()方法启动线程。

示例代码:


  class MyThread extends Thread {

    public void run() {

      System.out.println("线程运行中");

    }

  }

  

  MyThread myThread = new MyThread();

  myThread.start();

使用继承Thread类的方式创建线程,代码简单,容易理解。适用于简单的线程任务。

2. 通过实现Runnable接口

创建一个实现Runnable接口的类,并实现run()方法,在run()方法中编写线程的执行代码。创建一个Thread实例并将实现Runnable接口的对象传入构造方法中。使用start()方法启动线程。

示例代码:


  class MyRunnable implements Runnable {

    public void run() {

      System.out.println("线程运行中");

    }

  }

  

  MyRunnable myRunnable = new MyRunnable();

  Thread thread = new Thread(myRunnable);

  thread.start();

使用实现Runnable接口的方式创建线程,代码复杂度稍高,但线程类与线程任务分离,代码更优雅,更适用于多线程任务。

3. 通过Callable和Future接口

创建一个实现Callable接口的类,并实现call()方法,在call()方法中编写线程的执行代码。创建一个ExecutorService实例,和一个Future对象,使用ExecutorService.submit()方法启动线程,并将返回的Future对象保存。通过Future对象的get()方法获取线程的返回值。

示例代码:


  class MyCallable implements Callable {

    public String call()

      return "线程运行结果";

    

  }

  

  MyCallable myCallable = new MyCallable();

  ExecutorService executorService = Executors.newSingleThreadExecutor();

  Future future = executorService.submit(myCallable);

  String result = future.get();

  System.out.println(result);

使用Callable和Future接口的方式创建线程,能够获取线程的返回值。适用于多线程需要返回结果的任务。

以上是Java线程创建的三种方式。根据需要选择相应的方式,能够让多线程的编程更方便、更高效、更加优雅。记得合理地设计线程的数量,避免CPU占用率过高等问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复