`

创建线程的两种方式

    博客分类:
  • J2SE
 
阅读更多

 


public static void main(String[] args) {
// 创建Thread的子类
Thread thread = new Thread() {
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1A" + Thread.currentThread());
// System.out.println("2A" + this.currentThread());
}
}
};
thread.start();

// Runnable
new Thread(new Runnable() {//Runnable为线程的宿主
@Override
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1B" + Thread.currentThread());
}

}
}).start();

 

 

//首先调用Thread的start()方法,启动线程,start()方法会找当前Thread对象的的run()方法,就调用自己的
//run()方法,如果没找到自己的run()方法,就会去调用父类的run()方法,父类的run()方法回去找Runnable,
//创建Thread子类,覆盖父类的run()方法,父类的run()方法被屏蔽,所以会调用子类的run()方法
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Runnable:" + Thread.currentThread());
}
}
}) {
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread" + Thread.currentThread());
}
};
}.start();


}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics