黑马程序员技术交流社区
标题:
关于怎么来定义一个线程(Thread),小结发现了三种方法
[打印本页]
作者:
zhouyunfang
时间:
2014-11-25 20:22
标题:
关于怎么来定义一个线程(Thread),小结发现了三种方法
我把我自己感觉有问题的地方写了一下,关于线程的一些实用的东西,供大家参考,一同进步,一起共勉。
一个是实现Runnable接口实现run()方法,一个是new Thread() 实现run() 方法和继承extends Thread 实现run()方法
小例子见笑:
1、继承Thread 实现run()方法
public class ThreadDemo01 {
public static void main(String[] args) {
Thread t1 = new Person1();
Thread t2 = new Person2();
t1.start(); //启动线程调用start()方法
t2.start(); //两个线程是异步的,不是同步的。
}
}
class Person1 extends Thread{
public void run(){
for(int i = 0;i<1000;i++){
System.out.println("你是谁");
}
}
}
class Person2 extends Thread{
public void run(){
for(int i = 0;i<1000;i++){
System.out.println("我是收电费的");
}
}
}
2、实现Runnable接口实现run()方法
public class ThreadDemo02 {
public static void main(String[] args) {
Runnable runnable1 = new Runnable1();
Runnable runnable2 = new Runnable2();
Thread t1 = new Thread(runnable1);
Thread t2 = new Thread(runnable2);
t1.start();
t2.start();
}
}
class Runnable1 implements Runnable{
public void run(){
for(int i = 0;i<1000;i++){
System.out.println("你是谁呀");
}
}
}
class Runnable2 implements Runnable{
public void run(){
for(int i = 0;i<1000;i++){
System.out.println("我是修电表的");
}
}
}
3、new Thread() 实现run() 方法
public class DaemonThreadDemo {
public static void main(String[] args) {
Thread rose = new Thread(){
public void run(){
for(int i = 0;i<10;i++){
System.out.println("rose:let me go");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("rose:啊啊啊啊啊啊AAAAAA");
System.out.println("扑通");
}
};
Thread jack = new Thread(){
public void run(){
while(true){
System.out.println("jack:you jump!i jump");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
jack.setDaemon(true); //设置为后台线程,在写在start()方法之前
rose.start();
jack.start();
}
}
作者:
kerner
时间:
2014-11-25 20:40
第三种和第一种是一样的,都是继承Thread类。后者不过是匿名内部类,覆盖了run()方法。
作者:
cbb
时间:
2014-11-26 02:29
我是来看第三种的~~~结果!是匿名!不过!楼主加油!嘿嘿
作者:
javaAndroid
时间:
2014-11-26 10:44
楼主不要理解错了,其实还是两种,只是你写的有一个是匿名的。
作者:
高昌德
时间:
2014-11-26 11:46
匿名内部了,,,,
作者:
LFW
时间:
2014-11-26 12:58
第三个是匿名类、、跟第一个一样的。。
作者:
mmppp
时间:
2014-11-26 14:47
匿名 哈哈 还是好想法,nice
作者:
huoxy
时间:
2014-11-26 16:24
毕老师在多线程最后的个视频里讲了用匿名内部类实现!如果这算第三种的话,还有第四种,通过实现Runnable接口的匿名内部类也算一种,是吧:lol
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2