首页 > 编程语言 >Java基础 多线程的实现方式——实现 Runnable 接口的方式进行实现

Java基础 多线程的实现方式——实现 Runnable 接口的方式进行实现

时间:2023-10-27 15:58:38浏览次数:35  
标签:Runnable Thread 实现 MyRun t2 t1 线程 多线程

实现 Runnable 接口的方式进行实现:

1. 定义一个类 实现 Runnable 接口,并实现 run 方法

2. 在 run 方法里面书写该线程要执行的代码

3. 然后创建这个 实现 Runnable 接口的类的实例化对象,这个对象其实就表示 多线程要执行的任务

4. 再去创建一个 Thread 类的对象,然后把  实现 Runnable 接口的那个类的对象 作为一个参数 传递进来

5. 开启线程

 

代码示例:

package pojo;

public class MyRun implements Runnable{
@Override
public void run() {
//getName() 是在 Thread 类里面的。我们的MyRun没有继承Thread

for (int i = 0; i < 3; i++) {
//先获取到当前线程的对象:Thread类当中的一个静态方法currentThread()
//currentThread()方法的返回值:表示当前是哪条线程执行到这个方法,那么这个方法就返回谁的对象
Thread t = Thread.currentThread();
System.out.println(t.getName() + "加油!");
}
/*
Test13_ThreadDemo 里,我们是创建了两个线程 t1和t2,这两个线程要执行的任务都是 mr,说白了就是 MyRun 里面的 run() 方法,
所以当程序启动之后,t1跟t2 都会执行 run() 方法里面的代码,那么在 run() 方法的循环当中,当 t1 执行到 Thread.currentThread() 时,
这个静态方法返回的就是 t1 的对象。同理,当 t2 执行到这个静态方法的时候,该静态方法返回的就是 t2 的对象
*/
}
}
--------------------------------------------------------------------------------
package test;

import pojo.MyRun;
import pojo.MyThread;

public class Test13_ThreadDemo {
public static void main(String[] args) {
//创建MyRun的对象,表示多线程要执行的任务
MyRun mr = new MyRun();

//创建两个线程对象
Thread t1 = new Thread(mr);
Thread t2 = new Thread(mr);

//给线程设置名字
t1.setName("线程一");
t2.setName("线程二");

//开启这两个线程
t1.start();
t2.start();
}
}

 

标签:Runnable,Thread,实现,MyRun,t2,t1,线程,多线程
From: https://www.cnblogs.com/gagaya2/p/17792516.html

相关文章

  • javaweb--多表关系实现
    一对多在多的一方建立外键,指向一的一方的主键多对多利用第三张中间表建立连接,第三张中间表包含两个外键,分别连接两张表的主键一对一多用于表的拆分,将实体中经常使用的字段放在一张表中,不经常使用的字段放在另一张表中,提升查询效率。在任何一方设置外键,连接另一方主键,并设置......
  • Java基础 多线程的实现方式——继承 Thread 类的方式
    多线程的三种实现方式:1.继承Thread类的方式进行实现2.实现Runnable接口的方式进行实现3.利用Callable接口和Future接口方式实现 一、继承Thread类的方式:将类声明为Thread的子类,该子类应重写Thread类的run方法,接下来可以创建子类的对象并启动线程。在......
  • 多线程程序是如何执行代码的?
    进程与线程概念、区别、以及线程间的通信概念进程是对程序运行时的封装,是操作系统分配资源的基本单位,实现操作系统的并发。线程是进程的子单位,是CPU调度和分派的基本单位,实现进程内部的并发。是OS识别的最小执行与调度单位,每个线程独占一个虚拟处理器,每个线程完成不同的任务,但......
  • 19. 从零开始编写一个类nginx工具, 配置数据的热更新原理及实现
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目地址gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh......
  • 借助Navicat实现将mysql表结构转表格
    借助Navicat实现将mysql表结构转表格SELECTCOLUMN_NAME列名,COLUMN_TYPE数据类型,DATA_TYPE字段类型,IF(IS_NULLABLE='NO','否','是')是否为空,COLUMN_DEFAULT默认值,COLUMN_COMMENT备注FROMINFORMATION_SCHEMA.COLUMNSWHEREt......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现Da
    在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。1、系统界面设计在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面所示......
  • tus-node-server 官方基于node 实现的tus server 1.0 发布
    tus-node-server是基于typescript开发的新的nodejsserver,通过拆分为独立的包(file,s3,gcs,server)包含的特性完全基于typescript开发拆分为了独立的包提供了新的events以及hooks升级了依赖包重新设计了存储file存储添加了过去扩展更好的周边集成(express,fastify。。。)参考使用s3v......
  • 如何实现淘宝自动发货
    淘宝自动发货是指在买家下单后,无需手动操作即可自动完成订单发货的功能。以下是一些关键步骤:开通物流接口首先,作为卖家,需要在淘宝上开通物流接口。这可以通过登录到淘宝卖家后台,进入“设置”-“物流设置”来完成。选择合适的物流渠道根据自己的业务需求和发货范围,选择合适的物流渠......
  • C#实现SSH、SCP、FTP等操作
    C#实现SSH、SCP、FTP等操作C#没有自带的SSH、SCP、FTP等操作的方法库,自己编写又太麻烦,这里将使用第三方Renci.SshNet.dll动态链接库实现这些操作 一、获取RENCI.SSHNET.DLL 二、将RENCI.SSHNET.DLL添加进C#工程我使用visualstudio2015作为IDE,将Renci.SshNet.dll添加进C#工程并......
  • 搭建jenkins实现自动化部署
    一、安装jenkins1、添加yumrepos,然后安装sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat/jenkins.reposudorpm--importhttps://pkg.jenkins.io/redhat/jenkins.io.key注:如果上边的执行成功就不用再执行这两行了sudowget-O/etc/yum.repos.d/j......