实现多线

简介: 创建线程的另一种方法是声明一个实现Runnable接口的类。 该类然后实现run方法。 然后可以分配类的实例,在创建Thread时作为参数传递,然后启动。

实现多线方式二:实现Runnable接口

Thread构造方法

方法名                                                              说明

Thread(Runnable target)                                             分配一个新的Thread对象

Thread(Runnable target, String name)                         分配一个新的Thread对象


实现步骤

1. 定义一个类MyRunnable实现Runnable接口

2. MyRunnable类中重写run()方法

3. 创建MyRunnable类的对象

4. 创建Thread类的对象,把MyRunnable对象作为构造方法的参数

5. 启动线程

代码演示

package com.geekdatas;

// 使用接口的好处就是不影响我MyRunnable继承其他的类

public class MyRunnable implements Runnable {

@Override

public void run() {

for (int i = 0; i < 100; i++) {

// System.out.println(getName() + ":" + i);

// Thread.currentThread() 当前正在执行的线程

System.out.println(Thread.currentThread().getName() + ":" + i);

}

}

}

----------------------------------------------------------------------------

---

package com.geekdatas;

/*

方式2: 实现Runnable接口

① 定义一个类MyRunnable实现Runnable接口

② 在MyRunnable类中重写run()方法

③ 创建MyRunnable类的对象

④ 创建Thread类的对象,把MyRunnable对象作为构造方法的参数

⑤ 启动线程

*/

public class MyRunnableDemo {

public static void main(String[] args) {

// 创建MyRunnable类的对象

MyRunnable my = new MyRunnable();

// 创建Thread类的对象,把MyRunnable对象作为构造方法的参数

// Thread(Runnable target)分配一个新的Thread对象

// Thread t1 = new Thread(my);

// Thread t2 = new Thread(my);

// Thread(Runnable target, String name)分配一个新的Thread对象

Thread t1 = new Thread(my, "高铁");

Thread t2 = new Thread(my, "飞机");

// 启动线程

t1.start();

t2.start();

}

}


总结:

多线程的实现方案有两种:

继承Thread

实现Runnable接口

相比继承Thread类,实现Runnable接口的好处

避免了Java单继承的局限性

适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码、数据有效分离,较

好的体现了面向对象的设计思想

目录
相关文章
|
SQL 缓存 JSON
vue利用级联选择器实现全国省市区乡村五级菜单联动
vue利用级联选择器实现全国省市区乡村五级菜单联动
|
数据建模 定位技术
7 种 基本比例尺地形图的分幅和编号的数量关系
7 种 基本比例尺地形图的分幅和编号的数量关系
1763 0
7 种 基本比例尺地形图的分幅和编号的数量关系
|
算法 机器人 数据处理
基于CEM算法的三维点云数据二维映射表示matlab仿真
基于CEM算法的三维点云数据二维映射表示matlab仿真
|
Linux 网络安全 开发工具
2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
|
消息中间件 Cloud Native Serverless
恭喜我的同事丁宇入选年度 IT 领军人物
阿里巴巴研究员、阿里云智能云原生应用平台负责人丁宇(花名:叔同)在CSDN 和《新程序员》特别举办“开发者生态汇 —— 2022 IT 技术影响力之星”活动中获得年度 IT 领军人物
恭喜我的同事丁宇入选年度 IT 领军人物
|
弹性计算 Linux PHP
如何选择阿里云服务器配置
简介: 什么配置的阿里云服务器是适合自己的呢?下面我们就来说说如何选择阿里云服务器配置。
如何选择阿里云服务器配置
|
消息中间件 存储 设计模式
我要实现一个推单功能了
以前都是作为消息接收方,接收消息。记得当时做支付的时候,接收第三方支付公司的各种消息,如支付成功、支付失败、退款成功、退款失败。
|
弹性计算 运维 监控
自建MySQL和阿里云RDS的区别 有必要使用云数据库吗?
很多阿里云ECS用户都会考虑是使用ECS自建数据库还是使用阿里云的RDS云数据库,如何选择?有必要使用云数据库吗?云吞铺子告诉你使用阿里云RDS云数据库的理由: RDS的高可用性 RDS提供了主备双节点的实例,双节点可以在同一地域的不同可用区,MySQL实例的双节点还可以在不同地域,当主实例出现故障时可快速切换到备实例,保障了RDS的稳定性。
2701 0
自建MySQL和阿里云RDS的区别 有必要使用云数据库吗?
|
PHP 关系型数据库 MySQL
关于php mysqli函数的一些总结和实例(四)
前言:php是一门入门比较简单的编程语言,同时php有非常多的内置函数。所以对于这些内置函数的理解与掌握就显得尤为重要。接下来我们就分析php的一些内置函数。后续我还会继续为大家整理。关于phpMysqli函数的理解: 一、什么是php mysqli? php mysqli = php nysqli improved mysqli函数允许您访问数据库服务器。
2149 0
|
Java Linux 双11
阿里开源 Dragonwell JDK 重磅发布 GA 版本:生产环境可用
今年 3 月份,阿里巴巴重磅开源 OpenJDK 长期支持版本 Alibaba Dragonwell 的消息,在很长一段时间内都是开发者的讨论焦点,该项目在 Github 上的 Star 数迅速突破 1400。

热门文章

最新文章