Java 实现多线程的两种方式
2024-09-14 16:02:25
1:继承Therad类
2:实现Runnable 接口
1、继承Thread类实现多线程
继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:
public class MyThread extends Thread {
public void run() {
System.out.println("MyThread.run()");
}
}
在合适的地方启动线程如下:
MyThread myThread1 = new MyThread();
MyThread myThread2 = new MyThread();
myThread1.start();
myThread2.start();
2、实现Runnable接口方式实现多线程
如果自己的类已经extends另一个类,就无法直接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();
}
}
最新文章
- PetaPoco利用ODP.NET Managed Driver连接Oracle
- 去 IOE,MySQL 完胜 PostgreSQL
- Windows Phone 二十、陀螺仪
- C语言状态机模板
- RedHat Linux 下安装MPlayer 编译源代码方式
- BZOJ 3969 low power
- IOS开发教程之put上传文件的服务器的配置及实例分享-备用
- 重新认识C++
- Unity3D 骨骼动画原理学习笔记
- react dnd demo
- Sargable 与 谓语下推 (predicate pushdown) 简介
- OC 使用CIFilter添加图片
- Python摸爬滚打之day04----基本数据类型(列表,元组)
- 特征点方法 - Harris和SURF的手工实现
- docker下centos安装ping命令
- 构建Java并发模型框架
- 提取数据之goose使用
- mysql 的增删改查
- eclipse的git插件安装、配置与使用
- jmeter-----如何安装插件管理?
热门文章
- bzoj1039: [ZJOI2008]无序运动Movement
- java sdk与jdk区别
- ruby中excel简单操作以及文件读取操作方法
- Kylin Java RESTful API
- C# 进程间通信之二传递复杂数据类型(转)
- mount不是很熟悉 转载文章了解下 转自http://forum.ubuntu.org.cn/viewtopic.php?f=120&;t=257333
- OpenSSLKey
- 【HEVC】1、HM-16.7编码器的基本结构
- mac 10.9 安装 gevent
- ASP.NET 生命周期 简介