首页 > 编程语言 >[java][代码]Java中创建多线程方法

[java][代码]Java中创建多线程方法

时间:2024-09-02 22:52:47浏览次数:13  
标签:java Thread void class 线程 new Java 多线程 public

 在Java中,创建多线程有多种方法。以下是一些常见的方法:

1. 继承 Thread 类
通过继承 Thread 类并重写其 run 方法来创建线程。


class MyThread extends Thread {
    public void run() {
        // 线程要执行的任务
        System.out.println("线程运行中...");
    }
}

public class ThreadExample {
    public static void main(String[] args) {
        MyThread t = new MyThread();
        t.start(); // 启动线程
    }
}

2. 实现 Runnable 接口
通过实现 Runnable 接口并实现其 run 方法,然后将 Runnable 实现类传递给 Thread 对象。

class MyRunnable implements Runnable {
    public void run() {
        // 线程要执行的任务
        System.out.println("线程运行中...");
    }
}

public class ThreadExample {
    public static void main(String[] args) {
        Thread t = new Thread(new MyRunnable());
        t.start(); // 启动线程
    }
}

3. 使用 ExecutorService 接口
Java提供了 java.util.concurrent 包,其中 ExecutorService 接口是创建线程池和管理线程的高级工具。

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

class MyRunnable implements Runnable {
    public void run() {
        // 线程要执行的任务
        System.out.println("线程运行中...");
    }
}

public class ThreadExample {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(5); // 创建一个固定大小的线程池
        executor.execute(new MyRunnable()); // 提交任务给线程池
        executor.shutdown(); // 关闭线程池
    }
}

4. 使用 Callable 和 Future
Callable 接口与 Runnable 类似,但它可以返回一个结果并且能抛出异常。通过 Future 接口可以获取 Callable 任务的结果。

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

class MyCallable implements Callable<String> {
    public String call() throws Exception {
        // 线程要执行的任务
        return "线程运行结果";
    }
}

public class ThreadExample {
    public static void main(String[] args) throws Exception {
        ExecutorService executor = Executors.newFixedThreadPool(5);
        Future<String> future = executor.submit(new MyCallable());
        System.out.println(future.get()); // 获取任务结果
        executor.shutdown();
    }
}

5. 匿名内部类
在实际开发中,经常使用匿名内部类来创建线程,这样可以减少代码量。

public class ThreadExample {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            public void run() {
                System.out.println("线程运行中...");
            }
        }).start();
    }
}

6. Lambda 表达式(Java 8+)
Java 8 引入了 Lambda 表达式,使得创建线程更加简洁。

public class ThreadExample {
    public static void main(String[] args) {
        new Thread(() -> System.out.println("线程运行中...")).start();
    }
}


每种方法都有其适用场景,你可以根据具体需求选择合适的方法来创建和管理线程。

标签:java,Thread,void,class,线程,new,Java,多线程,public
From: https://blog.csdn.net/awonw/article/details/141832477

相关文章

  • java-基于spring boot在线装修管理系统
    摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用在线装修管理系统可以有效管理,使信息管理能......
  • [java][代码]在Java中将文本写入文件
    在Java中,有多种方法可以将文本写入文件。以下是一些常见的方法:1.使用FileWriter类FileWriter是最基本的字符输出流,可以用来写入字符文件。importjava.io.FileWriter;importjava.io.IOException;publicclassWriteFileExample{publicstaticvoidmain(Stri......
  • 时区以及时区对于Java时间类格式化的影响
    时区基本概念时区(TimeZone)是指地球上的一个地区与格林尼治标准时间(GMT)或协调世界时(UTC)之间的时间差异。由于地球自转的原因,不同的地理位置会有不同的时间。时区的划分使得世界各地能够更合理地安排时间,保持同步。UTC(协调世界时):UTC是一种标准时间,它没有受到地球自转速度变化......
  • Java LeetCode练习
        LeetCodeExercise        807.保持城市天际线    题解:贪心        从左侧和右侧看,城市天际线等于矩阵grid的每一行的建筑物高度最大值;从顶部和底部看,城市天际线等于矩阵grid的每一列的建筑物高度最大值。只要不改变每一行和每一列......
  • 「Java跳槽面试必备」2024年09月最新八股文
    【前言】网上各种面试八股文太多太多,但我今年找了好几个都是很久很久以前的老面试题,老文档了,和我出去面试市场上面试官问的问题基本上不一样了,可以说被打了一个措手不及,浪费了好几个机会,回来又找了好一些资料,以及结合自己最近的面试情况总结了一些心得免费分享给大家!虽然只有几本......
  • Java学习案例:控制台实现电影院管理系统
    文章目录@[TOC](文章目录)前言一、实现效果1、登录界面以及注册功能演示2、普通用户登录(1)热映影片(2)即将上映(3)个人信息(4)票夹3、管理员登录(1)电影管理(2)用户管理(3)个人信息二、功能源码1、接收用户的合法输入2、控制台格式化输出3、创建工具类4、多个类之间数据传递三......
  • 《JavaEE进阶》----9.<SpringMVC实践项目:【简易对话留言板(数据存在数据库中)】>
    本篇博客讲解设计的一个网页版简易对话留言板。这个是将数据存在数据库中。我们通过链接本地数据库。在这里面存入的数据。此时数据存在在硬盘中,只要数据不被删除,硬盘不损坏。那么这些数据就会被永久保存引入的依赖:配置数据库:spring:datasource:#数据库连接配置......
  • Java表达式与语句
    文章目录Java表达式和语句1.变量2.运算符与表达式3.语句Java表达式和语句1.变量变量及作用域局部变量在一个方法或由一对{}表示的代码块内定义的变量称为局部变量,有时也称为自动变量、临时变量或堆栈变量。局部变量的作用域是所在的方法或代码块,当程序执行流......
  • Java 面向对象编程的四个基本原则(封装、继承、多态和抽象),并给出一个简单的例子说明如
    面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。在Java中,面向对象编程的四个基本原则是封装、继承、多态和抽象。每个原则都有其特定的目标,帮助开发者构建更加模块化、可维护和可扩展的代码。封装封装是指将数据(属性)和行为(方法)捆绑在一起,并隐藏对象的具体实现细......
  • Java 面试题:事务隔离级别以及并行事务会出现什么问题&&怎么解决脏读、不可重复读和幻
    文章目录四种事务隔离级别MySQL中设置事务隔离级别四种事务隔离级别在并行事务中可能会遇到的问题脏读、不可重复读和幻读三者区别事务的隔离级别是怎么解决这三个问题的?ReadView是什么ReadView包含的信息ReadView在MVCC中的工作原理工作流程总结事务的隔......