多线程实现的方式二实现Rannable
2024-08-22 14:34:26
package thread; class Thread2 implements Runnable{
private String name; public Thread2(String name) {
this.name=name;
} // @Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + "运行 : " + i);
try {
Thread.sleep((int) Math.random() * 10);
} catch (InterruptedException e) {
e.printStackTrace();
}
} }
public static void main(String[] args) {
new Thread(new Thread2("C")).start();
new Thread(new Thread2("D")).start();
} }
运行结果如下
C运行 : 0
D运行 : 0
C运行 : 1
D运行 : 1
C运行 : 2
D运行 : 2
C运行 : 3
D运行 : 3
C运行 : 4
D运行 : 4
Thread2类通过实现Runnable接口,使得该类有了多线程类的特征。run()方法是多线程程序的一个约定。所有的多线程代码都在run方法里面。Thread类实际上也是实现了Runnable接口的类。
在启动的多线程的时候,需要先通过Thread类的构造方法Thread(Runnable target) 构造出对象,然后调用Thread对象的start()方法来运行多线程代码。
实际上所有的多线程代码都是通过运行Thread的start()方法来运行的。因此,不管是扩展Thread类还是实现Runnable接口来实现多线程,最终还是通过Thread的对象的API来控制线程的,熟悉Thread类的API是进行多线程编程的基础。
参考博客:http://www.cnblogs.com/GarfieldEr007/p/5746362.html
最新文章
- EaeyUI
- ReflectUitls类的编写和对反射机制的解析
- js 监听监键盘动作
- js 字符及字符串
- ThinkPad E40无线网卡驱动安装 FOR CENTOS6.3
- REDGATE又一好用的脚本工具ScriptsManager1.3
- mysql建表设置两个默认CURRENT_TIMESTAMP的技巧
- 后台前台json传递数据的方式两种方式 $.get, $.getJSON
- zepto.js 处理Touch事件
- Browser Object Model
- Python-生成器_36
- [Android] Android ViewPager 中加载 Fragment的两种方式 方式(二)
- TopCoder SRM500 Div1 500 分治
- 【转载】Hadoop官方文档翻译——HDFS Architecture 2.7.3
- ipv6禁用导致rpcbind服务启动失败解决办法
- .NET Core开发日志——Action
- Oracle EBS OPM 子库存转移
- Solr7.4.0的API(Solrj)操作
- HP LoadRunner:怎样连接到HP ALM的CAC模式?
- vector 邻接表的建立(好笨啊,才懂,可能太困了吧)。。
热门文章
- eNSP配置静态路由
- 11 Sping框架--AOP的相关概念及其应用
- C++—多态与继承
- as3效率优化
- Consul 的安装与基本使用
- 利用ime-mode设置文本框只能输入正整数
- NetworkInterface网速监测
- css小技巧 -->; 单标签实现单行文字居中,多行文字居左
- ZYNQ block design警告:[BD 41-968] AXI interface port /axi_lite4 is not associated to any clock port. It may not work correctly.
- IOS SDK详解