您的位置:首页 > 编程语言 > Java开发

java线程两种实现方式的区别,你所不知道的小细节

2013-12-06 23:12 555 查看
/*
* 创建线程时要继承Runnable接口
* 不要把宝贵的单继承机会占有掉
* 两种方式有点不用,实现Runnable
* 接口时多个线程中执行一个
* Runnable接口实现类时,run方法资源共享
* 而继承Thread时,run方法资源是
* 不能共享的!
*/
public class Test_Runnable_Thread {

public static void main(String[] args) {
/*
* 下面的代码执行400次打印语句
*/
SubThread subT1 = new SubThread();
SubThread subT2 = new SubThread();
SubThread subT3 = new SubThread();
SubThread subT4 = new SubThread();
subT1.start();
subT2.start();
subT3.start();
subT4.start();

/*
* 下面的代码执行100次打印语句
*/
SubRunnable subR = new SubRunnable();
Thread th1 = new Thread(subR);
Thread th2 = new Thread(subR);
Thread th3 = new Thread(subR);
Thread th4 = new Thread(subR);
th1.start();
th2.start();
th3.start();
th4.start();

}

}

class SubRunnable implements Runnable {

private int id = 100;

@Override
public void run() {
while (true) { // 请自动关闭死循环,为了效果设置死循环 dos窗口中ctrl+c关闭
if (id > 0) {
System.out.println(Thread.currentThread().getName() + "run..."
+ id--);
}
}
}

}

class SubThread extends Thread {

private int id = 100;

@Override
public void run() {
while (true) { // 请自动关闭死循环,为了效果设置死循环 dos窗口中ctrl+c关闭
if (id > 0) {
System.out.println(Thread.currentThread().getName() + "run..."
+ id--);
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: