黑马程序员技术交流社区
标题:
java中创建线程的两种方式有什么区别?
[打印本页]
作者:
荣天
时间:
2012-5-13 11:31
标题:
java中创建线程的两种方式有什么区别?
java中创建线程的两种方式有什么区别
作者:
刘克方
时间:
2012-5-13 11:37
使用Runnable接口创建线程
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
直接继承Thread类创建对象
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。
在实际应用中,几乎都采取第一种方式
作者:
马浩
时间:
2012-5-13 11:51
1、继承Thread类创建线程的方法,在继承了Thread类之后,不能再继承其他的方法,(在java中支持单继承),这样灵活性就不如实现Runnable接口来创建线程的方法了;
2、使用实现Runnable接口来创建线程可以达到资源共享!(继承Thread类创建线程也可以实现资源共享,但是比较的麻烦。)
在我们创建线程的时候都会优先采用实现Runnable接口的方法。
作者:
赵文杰
时间:
2012-5-13 22:28
*** 一.创建线程
1.继承Thread类
定义类继承Thread, 重写run()方法, 将线程中要执行的代码写在run()方法中
创建该类对象, 调用start()方法就可以开启一条新线程, 新线程中自动指定run()方法
public class ThreadDemo1 {
public static void main(String[] args) {
// 3.创建线程对象
MyThread mt = new MyThread();
// 4.启动一条新线程, 新线程上自动执行run()方法
mt.start();
// 5.主线程循环打印
for (int i = 0; i < 100; i++)
System.out.println("A " + i);
}
}
// 1.定义类继承Thread
class MyThread extends Thread {
// 2.重写run方法
public void run() {
for (int i = 0; i < 100; i++)
System.out.println("B " + i);
}
}
2.实现Runnable接口
定义类实现Runnable接口, 重写run()方法, 将线程中要执行的代码写在run()方法中
创建该类对象, 创建Thread类对象, 将Runnable对象传入Thread的构造函数中
调用Thread对象的start()方法就可以开启一条新线程, 新线程中执行Runnable的run()方法
public class ThreadDemo2 {
public static void main(String[] args) {
// 3.创建Runnable对象
MyRunnable mr = new MyRunnable();
// 4.创建Thread对象, 在构造函数中传入Runnable对象
Thread t = new Thread(mr);
// 5.调用start()开启新线程, 新线程自动执行Runnable的run()方法
t.start();
// 6.主线程循环打印
for (int i = 0; i < 100; i++)
System.out.println("A " + i);
}
}
// 1.定义类, 实现Runnable接口
class MyRunnable implements Runnable {
// 2.实现run()方法
public void run(){
for (int i = 0; i < 100; i++)
System.out.println("B " + i);
}
}
作者:
杨静
时间:
2012-5-14 01:24
java中是单继承,你若是从Thread类继承的话(在子类中重写run方法),就不能继承其他的类了,而且多条线程之间无法共享线程类的实例变量。
但是实现Runnable接口(在实现类中重写接口的run方法)同时还可以继承其他类,在这种方式下可以多个线程共享同一个target对象,适合多个相同线程处理同一份资源,从而使得CPU、代码和数据分开,形成清晰地模型,较好地体现了面向对象的思想。
作者:
荣天
时间:
2012-5-14 08:13
赵文杰 发表于 2012-5-13 22:28
*** 一.创建线程
1.继承Thread类
定义类继承Thread, 重写run()方法, 将线程中要执行的代码写在run()方法 ...
谢 谢朋友:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2