Java实现线程:实现Runnable接口与继承Thread类
需积分: 10 56 浏览量
更新于2024-09-18
收藏 23KB DOCX 举报
"这篇文档介绍了线程的三种风格,主要关注如何在Java中创建和管理线程,强调了实现Runnable接口相对于直接继承Thread类的灵活性,并提供了实例代码进行解释。"
在多线程编程中,Java提供了两种主要的方式来创建线程:实现Runnable接口和继承Thread类。这篇文档重点讨论了这两种方法。
首先,实现Runnable接口是推荐的方式。这是因为Java不支持多重继承,所以如果你的类已经有一个父类,那么实现Runnable接口可以避免与Thread类的冲突,从而让你的类能够继承其他类。在Runnable接口中,只有一个`public void run()`方法需要实现,这个方法定义了线程的运行主体。例如:
```java
class Runner1 implements Runnable {
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Runner1:" + i);
}
}
}
```
然后,你可以创建一个Thread对象,将Runnable实例作为参数传入,如下所示:
```java
Runner1 r = new Runner1();
Thread t = new Thread(r); // 这里使用了多态和重写的现象
t.start();
```
启动线程的关键在于调用`start()`方法,而不是直接运行`run()`方法。`start()`会启动一个新的线程,并且在新线程中执行`run()`方法。如果直接调用`run()`,则会在当前线程(即主线程)中执行,失去了并发的效果。
另一种创建线程的方式是直接继承Thread类,并重写`run()`方法,如:
```java
class MyThread extends Thread {
public void run() {}
}
MyThread myThread = new MyThread();
myThread.start();
```
然而,这种方式限制了类的继承性,因此在多数情况下,实现Runnable接口更加灵活和推荐。
文档中还提到了一个关于Applet的例子,它展示了如何在Applet环境下创建和启动线程。AppletViewer在加载Applet时会调用`start()`方法,这会触发线程的创建和执行。在Applet中创建线程,实质上是在类外创建了一个Thread对象,并调用了`start()`方法来启动线程,执行对应的`run()`方法。
总结起来,这篇文档主要讲解了Java中线程的创建和启动,强调了实现Runnable接口的灵活性,并通过代码示例和Applet的场景进行了具体说明。理解和掌握这些内容对于进行多线程编程至关重要,因为它允许开发者有效地利用计算机的多核处理器,提高程序的执行效率。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2014-04-27 上传
2018-07-08 上传
121 浏览量
2013-08-22 上传
2021-07-20 上传
2021-07-24 上传
刻骨铭心
- 粉丝: 0
- 资源: 4
最新资源
- serialize-stl-ascii:STL ASCII 序列化
- birthday-reminder
- BinaryToDecimal:十进制转换为numerobinário
- 线迷宫的最短路径-曲折曲折轨迹-项目开发
- pp復卷機三菱伺服編程.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例
- LUA5.33支持库1.2版(Lua.fne)-易语言
- HtmlCleaner-开源
- coachtech3
- 002--EncryptDemo.zip
- 第12周-Java:Java练习(Java镇)
- ebook tools-开源
- desafio_01_nodejs
- 易语言代码目标文件源码-易语言
- awesome-alg:不懂算法的产品经理就是没有灵魂的段子手
- 记录学习:流畅的Python 一书的过程,并整理成代码和笔记.zip
- TTGProtect:适用于所有人的不和谐审核机器人,开源