简单易懂的多线程(通过实现Runnable接口实现多线程)
通过实现Runnable接口实现多线程
在开发中,我们应用更多的是通过 Runnable 接口实现多线程。在实现 Runnable 接口的同时还可以继承某个类。所以实现Runnable 接口的方式要通用一些。
1.编写实现类,实现Runnable接口并实现所有方法(run方法);
package com.bjsxt.thread;public class MyRunnable implements Runnable{//具备了多线程操作的能力@Overridepublic void run() {for(int i=0;i<50;i++) {System.out.println("myRun--->"+i);}}}
2.编写测试类,通过Thread类的star()方法启动多线程;
package com.bjsxt.thread;public class TestR {public static void main(String[] args) {// 创建线程类对象MyRunnable mr = new MyRunnable();
// start()方法是Thread类中的方法Thread t = new Thread(mr);t.start();
// 主线程中的循环for(int i=0;i<50;i++) {System.out.println("----main"+i);}}
}
效果图:
效果不但与继承Thread类相同,而且更灵活;
つづく…
简单易懂的多线程(通过实现Runnable接口实现多线程)相关推荐
- Java实现Runnable接口创建多线程
Java实现Runnable接口创建多线程 通过继承Thread类,实现多线程,但是,这种方式有一定的局限性,因为,Java中只支持单继承,一个类一旦继承了某个父类,就无法再继承Thread类 比如, ...
- 【Java多线程】实现Runnable接口方式 / 继承Thread类方式;使用synchronized锁实现线程安全;线程安全的懒汉式单例模式;死锁问题示例
Thread 的生命周期 一.实现Runnable接口方式 1.在 run 方法中使用 synchronized 块 /*** 例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的 ...
- 多线程之实现Runnable接口及其优点
多线程之实现Runnable接口: 1.创建一个Runnable接口的实现类 2.在实现类中重写Runnable接口的run方法 3.创建一个Runnable接口实现类的对象 4.创建Thread类对 ...
- main run方法没用_多线程:解决Runnable接口无start()方法的问题
为什么需要定一个类去实现Runnable接口呢?继承Thread类和实现Runnable接口有啥区别呢? 实现Runnable接口,避免了继承Thread类的单继承局限性.覆盖Runnable接口中的 ...
- Android开发笔记(四十七)Runnable接口实现多线程
Runnable概述 Runnable接口可声明一连串的事务,常用于多线程处理.但是实现Runnable接口并不意味着开启了一个新线程,只是定义了接下来要做的事情,至于说这些事情要在主线程处理,还是在 ...
- 【Java之多线程篇】——吐血整理Java多线程详解(知识点+代码)
目录: 线程基本概念 并行\并发的区别 多线程优点和何时使用多线程 多线程创建的两种方式:继承Thread类.实现Runnable接口(代码) Thread类中的常用方法 线程的生命周期 线程的同步 ...
- java多线程(一)-Thread类和Runnable接口
public class Thread extends Object implements Runnable Thread通过实现Runnable实现多态关系. Java中实现多线程,最基本2种方式: ...
- JavaSE基础二十:Java 多线程(线程基础知识、Java 多线程、Java 实现多线程(继承 Thread 类、实现 Runnable 接口、实现 Callable 接口))
本章目录 1.基础知识准备 2.Java 多线程概述 3.Java 实现多线程 3.1.继承 Thread 类 如何开启新线程 Thread 类常用方法 多线程中的同步 Thread 类同步方法 多线 ...
- 多线程实现方式---实现Runnable接口
多线程实现方式---实现Runnable接口 多线程实现方式---实现Runnable接口 一个类如果需要具备多线程的能力,也可以通过实现java.lang.Runnable接口进行实现.按照Java ...
最新文章
- 大多数人对AI的理解,都是错的
- laravel mysql 锁表_Laravel 数据库加密及数据库表前缀配置方法
- JAVA中NEXTLINE()与NEXT()的区别
- 联想笔记本ideapad700 15isk添加内存
- Windows系统下黑客(极客)学习发展流程图
- MyBatis-学习笔记10【10.JNDI扩展知识】
- 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了
- innosetup 同名文件替换_运维工程师必备命令之文件管理
- 西瓜书《机器学习》多元线性回归公式推导
- leetcode950. Reveal Cards In Increasing Order
- linux 单用户模式 挂载u盘_(原创)Linux文件系统只读Read-only file system的快速解决方法...
- for循环里面嵌套if_信不信两层python嵌套for循环就能把你搞懵了
- 读名老中医之路笔记(四)
- cartopy模块介绍与安装
- java性能调试命令_性能测试--十个命令迅速发现性能问题
- LINUX安装CUDA 9.2,提示缺少文件的解决办法
- sqlParameter的使用------七个构造函数
- c语言while语句求奇数和,C语言 100以内奇数和 while语句
- 2022依旧可用的抖音无水印解析工具,免费分享
- 一次排查服务器挖矿病毒
热门文章
- Thread Group(线程组)
- mysql查询时强制区分大小写
- Coding 初级教程(二)——上传已有项目
- tensorflow安装后在 pychram中 使用测试 找不到 tensorflow 模块的问题解决
- python 语言教程(2)基础语法
- C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
- C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板特例化
- (chap1 web网络基础) TCP/IP协议层
- C++ Primer 5th笔记(chap 15 OOP)继承之派生类
- C++ Primer 5th笔记(chap 13 拷贝控制)引用计数