首页 > 编程语言 >java实现线程的两种方式,举例说明

java实现线程的两种方式,举例说明

时间:2023-11-05 21:15:49浏览次数:39  
标签:Runnable java Thread 继承 接口 线程 public 举例说明

在Java中,创建线程主要有两种方式:实现 Runnable 接口和继承 Thread 类。

方式 1: 实现 Runnable 接口
实现 Runnable 接口是创建线程的首选方式。你需要做的是实现 Runnable 接口的 run 方法。然后可以将 Runnable 对象作为参数传递给 Thread 对象,并启动该线程。

public class HelloRunnable implements Runnable {

@Override
public void run() {
System.out.println("Hello from a thread!");
}

public static void main(String args[]) {
(new Thread(new HelloRunnable())).start();
}
}

方式 2: 继承 Thread 类
另一种方式是直接继承 Thread 类并覆盖其 run 方法。之后,你可以创建该类的实例并调用 start 方法来运行线程

public class HelloThread extends Thread {

@Override
public void run() {
System.out.println("Hello from a thread!");
}

public static void main(String args[]) {
(new HelloThread()).start();
}
}

比较两种方式
实现 Runnable 接口 是更加灵活的方式,因为它允许你的类继承其他类。在Java中,继承是单继承,所以一旦你的类继承了其他类,就不能再继承 Thread 类。
继承 Thread 类 可能看起来更简单,但它不够灵活,因为它要求你的类必须继承 Thread 类,这限制了你的类的可能继承结构。
通常推荐使用实现 Runnable 接口的方式来创建线程,因为它更加灵活,并且能更好地表达出这个类是一个可以在独立线程中执行的任务。

作者:http://xkrj5.com 纯原创首发,转载保留版权处!!!

标签:Runnable,java,Thread,继承,接口,线程,public,举例说明
From: https://www.cnblogs.com/xkrj5/p/17811178.html

相关文章

  • java javaBean
    this关键字可以区别成员变量和局部变量构造方法构造方法也叫作构造器、构造函数。作用:在创建对象的时候给成员变量进行赋值的。如果我们自己没有写任何的构造方法那么虚拟机给我们加一个空参构造方法构造方法的定义:如果没有定义构造方法,系统将给出一个默认......
  • java string方法的具体讲解和举例说明
    在Java中,String类提供了一系列用于操作字符串的方法。下面是一些常用的String方法及其用法的示例:1.length()返回字符串的长度(字符数)。Stringstr="Hello";intlen=str.length();//len=52.charAt(intindex)返回指定索引处的字符。charch=str.charAt(0);//ch......
  • 使用java近似计算π的值实践
    使用蒙特卡罗方法近似计算π的值实践   蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所想要计算的值。是一种基于随机抽样的数值计算方法。这个方法的基本思想是在一个正方形内随机放置若干个点,并且判断每个点是否在以正方形中心为圆心、以正......
  • Java 操作 XML(15)--XOM 使用
    XOM是一个面向对象的XMLAPI,有点像DOM风格,但是许多功能使XOM与众不同,其中最主要的是严格维护内存对象中的不变性,以便始终可以将XOM实例序列化以更正XML。本文主要介绍使用XOM处理XML,文中所使用到的软件版本:Java1.8.0_341、XOM1.3.9。1、简介XOM被设计成易于学习和......
  • java基础:static静态代码块
    在Java中,静态代码块(staticblock)是在类加载时执行的,而不是在每次创建对象时执行的。当类被加载时,静态代码块会按照在类中出现的顺序被执行一次。这意味着无论创建多少个对象,静态代码块只会执行一次。具体执行时机如下:当类被首次加载时,静态代码块会被执行。类的加载通常发生在使用该......
  • Java21对虚拟线程进行http压测使用不同的GC
    JDK21默认GC是G1.JDK21除了G1外,还可以使用ZGC(Java11预览、Java15正式版),Java21在ZGC基础上继续推出了分代ZGC,目前还是试行阶段。开启ZGC:java-XX:+UseZGC-jarmyapp.jar开启ZGC,并试用分代ZGCjava-XX:+UseZGC-XX:+ZGenerational-jarmyapp.jar以下的对一个启用tomcat......
  • java 模板
    1.添加依赖:<dependencies><!--支持模板--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency></dependencies>注:......
  • java.time.format.DateTimeParseException: Text ‘202310132358‘ could not be pars
    你遇到的问题是由于在解析日期和时间时格式不正确。Java无法解析‘202310132358’这个字符串,因为它不符合Java日期时间格式。Java期望的日期时间格式通常是“yyyy-MM-ddHH:mm:ss”,其中:yyyy是四位数的年份MM是两位数的月份dd是两位数的日期HH是两位数的小时(24小时制)mm是两......
  • java 计算两个日期之间相隔的天数
    在Java8中,你可以使用java.time包中的LocalDate类和Period类来计算两个日期字符串之间相隔的天数。以下是一个示例代码:importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;importjava.time.Period;publicclassDateDifference{publicstaticvoid......
  • java IO模型:AIO(Asynchronous I/O)
    AIO也就是NIO2。Java7中引入了NIO的改进版NIO2,它是异步IO模型。异步IO是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。目前来说AIO的应用还不是很广泛。Netty之前也尝试使用过AIO......