Java多线程实现的两种方式

发布时间 - 2026-01-10 22:30:16    点击率:

java多线程实现方式主要有两种:继承Thread类、实现Runnable接口

1、继承Thread类实现多线程

继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:

public class MaYi extends Thread {
  String name;
  public MaYi(String name){
    this.name = name;
  }
  public void run(){
    while(true){
      try {
        Thread.sleep(1000);//等待1秒
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      System.out.println(name+"蚂蚁正在下载......");
    }
  }
}

启动线程:

  public static void main1(String[] args) {
    MaYi m1 = new MaYi("1号");
    m1.start();
    MaYi m2 = new MaYi("2号");
    m2.start();

2、实现Runnable接口方式实现多线程

如果自己的类已经继承另一个类,就无法直接extends Thread,此时,必须实现一个Runnable接口,如下:

public class MyThread extends OtherClass implements Runnable { 
  public void run() { 
   System.out.println("MyThread.run()"); 
  } 
}

为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

MyThread myThread = new MyThread(); 
Thread thread = new Thread(myThread); 
thread.start();

事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:

public void run() { 
  if (target != null) { 
   target.run(); 
  } 
} 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# Java  # 多线程  # Java多线程中的单例模式两种实现方式  # 详细解读JAVA多线程实现的三种方式  # java实现多线程的两种方式继承Thread类和实现Runnable接口的方法  # 总结Java中线程的状态及多线程的实现方式  # 详解Java实现多线程的三种方式  # Java 实现多线程的几种方式汇总  # Java多线程的实现方式比较(两种方式比较)  # 详解三种java实现多线程的方式  # java基本教程之常用的实现多线程的两种方式 java多线程教程  # 浅谈Java的两种多线程实现方式  # 自己的  # 是一个  # 就会  # 很简单  # 有两种  # 它将  # 本质上  # 源代码  # 就可以  # 实现了  # 事实上  # pre  # void  # class  # extends  # String  # MaYi  # brush  # public 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解vue.js组件化开发实践  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel如何升级到最新版本?(升级指南和步骤)  Linux系统命令中tree命令详解  如何在云主机上快速搭建网站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  Android利用动画实现背景逐渐变暗  微信小程序 scroll-view组件实现列表页实例代码  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何快速搭建高效WAP手机网站吸引移动用户?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在Windows环境下新建FTP站点并设置权限?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  装修招标网站设计制作流程,装修招标流程?  如何打造高效商业网站?建站目的决定转化率  公司门户网站制作流程,华为官网怎么做?  如何安全更换建站之星模板并保留数据?  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel如何使用Blade模板引擎?(完整语法和示例)  如何在景安云服务器上绑定域名并配置虚拟主机?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何在搬瓦工VPS快速搭建网站?  Laravel Session怎么存储_Laravel Session驱动配置详解  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  青岛网站建设如何选择本地服务器?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  python中快速进行多个字符替换的方法小结  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  音乐网站服务器如何优化API响应速度?  如何在Tomcat中配置并部署网站项目?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  免费网站制作appp,免费制作app哪个平台好?  zabbix利用python脚本发送报警邮件的方法