Java多线程:实现方式Thread与Runnable
转载自 Java多线程:实现方式
在Java中, 多线程的实现有两种方式:
扩展java.lang.Thread类
实现java.lang.Runnable接口
方法1
/** * @Description: 继承Thread类, 实现多线程. * @author snoopy * @blog http://blog.csdn.net/huang_xw */
package basic.a_start; import org.apache.log4j.Logger; public class TestThread extends Thread { private static Logger logger = Logger.getLogger(TestThread.class); public static void main(String[] args) { TestThread test = new TestThread(); logger.debug("在Main线程中启动线程!"); test.start(); } public void run() { logger.debug("在线程中运行!"); }
}
方法2
/** * @Description: 测试Runnable类实现的多线程程序 * @author snoopy * @blog http://blog.csdn.net/huang_xw */
package basic.a_start; import org.apache.log4j.Logger; public class TestRunnable { private static Logger logger = Logger.getLogger(TestRunnable.class); public static void main(String[] args) { // 1. 将任务处理代码移到实现了Runnable接口的类的run方法中。 // 2. 创建任务类的一个对象 // 3. 由Runnable创建Thread对象 // 4. 启动线程 ImpRunnable r1 = new ImpRunnable(); ImpRunnable r2 = new ImpRunnable(); // 给线程命名有两种方式 // 1.虚拟机命名 2.用Thread类的构造方法 Thread t1 = new Thread(r1, "线程1"); Thread t2 = new Thread(r2, "线程2"); t1.start(); t2.start(); }
} class ImpRunnable implements Runnable { private static Logger logger = Logger.getLogger(ImpRunnable.class); // 当线程目标run()方法结束时该线程完成。 public void run() { for (int i = 0; i < 10; i++) { // for循环用来模拟一个耗时的操作 for (long k = 0; k < 100000000; k++) ; // 获取当前线程的对象的方法是: Thread.currentThread() logger.debug(Thread.currentThread().getName() + " 运行" + ": 第" + i + "次"); } }
}
Java多线程:实现方式Thread与Runnable相关推荐
- Java多线程-通讯方式
Java多线程-通讯方式 线程之间为什么要通信? 通信的目的是为了更好的协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知.那么java线程是如何通信的呢,大致有以下六种方式. Java线 ...
- Java多线程(一):Runnable和Thread的基本用法
Runnable Runnable 是个函数式接口,因此可以通过lambda表达式初始化.其内部只有一个run方法,源码比较简单,如下: @FunctionalInterface public int ...
- 多线程的实现方式_一文搞懂Java多线程使用方式、实现原理以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- java实现多线程抢单_来聊一聊3种实现JAVA多线程的方式吧
在Java中,实现多线程的方式有3种,分别是继承Thread类.实现Runnable接口.实现Callable接口.关于它们是如何实现,有何区别呢? 方式一:继承Thread类 一个普通类只要继承了传 ...
- 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- Java多线程实现方式
文章目录 实现方式 继承Thread类实现多线程 实现Runnable接口实现多线程.示例如下: 实现Callable接口并通过FutureTask包装器创建线程.示例如下: 使用ExecutorSe ...
- 使用线程锁(lock)实现线程同步_一文搞懂Java多线程使用方式、实现原理以及常见面试题...
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- java多线程创建方式以及线程安全
什么是线程 线程被称为轻量级进程,是程序执行的最小单位,它是指在程序执行过程中,能够执行代码的一个执行单位.每个程序程序都至少有一个线程,也即是程序本身. 线程的状态 新建(New):创建后尚未启动的 ...
- java 创建线程thread_初学Java多线程:用Thread类创建线程
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程, ...
最新文章
- “一线城市,年薪30万+,我却裸辞回老家”一个前程序员的 10 年职业思考
- 框架模式 MVC 在Android中的使用
- Ruby on Rails的下载及安装以及开发环境的搭建
- struts2使用注解--ACTION中的应用
- 下一代Android或官方支持“App2sd”
- laravel session redis 设置
- 教育部:麻省理工学院2019年本科生未招收一名中国大陆的学生不属实
- 23种设计模式之装饰模式
- 信息学奥赛一本通(1261:【例9.5】城市交通路网)
- 创建设计模式 - Builder设计模式
- [导入].net中设置系统时间
- 2020-11-30 03_空域图像处理 笔记
- 黑马程序员2022年最新软件测试学习路线
- win7备份工具_调解 win7系统一键还原精灵使用的具体方法 -win7系统使用教程
- 台式计算机2017排行分析,台式电脑CPU性能排行 桌面CPU天梯图2017年9月最新版 (全文)...
- openbsd_OpenBSD与Linux,Gentoo与Microsoft相遇
- css3 图片阴影、翘边效果
- rk3568安卓11系统之开发环境搭建
- C#双色球——简单抽取中奖号码
- 1、	输入长方形的长和宽,编程求该长方形的周长和面积
热门文章
- ciclop读音,购机必备,15种 3D扫描 设备 优缺点汇总
- C++文本文件操作和二进制文件读写
- [Java基础]Lambda表达式的注意事项
- DevC++如何安装自定义头文件并使用
- SpringBoot项目新手——问题疑惑及解决笔记
- Good Number Gym - 102769G 2020年CCPC秦皇岛分站赛
- c语言加花指令,花指令的应用
- Educational Codeforces Round 17 E. Radio stations cdq分治 + 树状数组
- Educational Codeforces Round 73 (Rated for Div. 2) Make The Fence Great Again dp + 结论
- ARC079F - Namori Grundy(构造,基环树)