Thread & Runnable
来源:互联网 发布:九九乘法表的c语言代码 编辑:程序博客网 时间:2024/05/17 11:04
在一次基于多线程的编码测试中,发现继承Runnable接口的线程实现类在运行时并未按预计启动多线程,经分析和比较后,找出问题所现,现将其记录下来,以供分享。
Java中,多线程编程中的线程编写,有两种方式,即扩展Thread基类或继承Runnable接口;例如:
public class T extends Thread {
public void run() {
……
}
}
public class R implements Runnable {
public void run() {
……
}
}
对于扩展Thread的实现类T,可以使用T.start()来启动此线程;如
public static void main(String[] args) {
Thread t = new T();
t.start();
}
但对于继承Runnable接口的实现类R,因接口中并没有提供直接启动线程的start()方法,只有一个线程主逻辑运行的run()方法。此时,如执行run(),会因为R.run()只是作为此线程实现类的一个方法,并未在主线程之外,启动另一个线程,从而导致R.run()阻断主线程继续向下执行;并未达到多线程运行的目的。
错误启动代码如下:
public static void main(String[] args) {
R r = new R();
r.run();
}
那么,如何使用另外线程来启动继承Runnable接口的实现类呢?以下就是它的正确的使用方式:
public static void main(String[] args) {
R r = new R();
Thread t = new Thread(r);
t.start();
}
- Thread & Runnable
- Thread & Runnable
- Thread Runnable
- thread & runnable
- Runnable Thread
- runnable & Thread
- Thread Runnable
- Thread/Runnable
- Runnable VS Thread
- 选用Runnable还是Thread
- Thread Runnable 多线程
- Thread与Runnable
- Thread,ThreadGroup和Runnable
- Thread and Runnable
- Thread 和 runnable 区别
- Runnable 和 Thread
- 线程 Thread Runnable Join
- 线程:thread与runnable
- PHP的一个过滤敏感词或脏话的方法
- 【旧文】AJAX总结(二)
- 学习ASP.NET + MVC(二)
- jspSmartUpload.jar下载 上传实例
- 几种linux内核文件的区别
- Thread & Runnable
- 写代码的四个基本准则
- 学习ASP.NET + MVC(一)
- 编译linux内核出现VFS: Cannot open root device "LABEL=/" or unknown-block(0,0)的解决方法【转
- 除标签以外,其他方式显示图片
- sql server添加约束
- TCP/IP基础(1)
- 限制帧频
- C# Socket编程笔记