Java—传统线程简单使用
2015-02-11 20:18
417 查看
java语言创建线程有两种方法:
1.继承thread类,重写父类的run方法,覆盖父类的run方法
//1.new thread的子类
Thread thread = new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread.start();
2.实现runnable接口
//2.new Runnable 把runnable对象放入thread中,thread去找runnable的run方法执行,这样更加提现面向对象
Thread thread2 = new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}){
};
thread2.start();
现在有一个问题,如果我们实现runnable接口再重写父类的run方法,那程序执行runnable的run方法还是执行父类的run方法?
//3.start执行,先找thread的run方法,直接执行thread的run方法。如果不覆盖父类的run方法,就执行runnable的run方法
Thread thread3 = new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println("threadrunnable:"+Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}){
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println("threadrun:"+Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread3.start();
1.继承thread类,重写父类的run方法,覆盖父类的run方法
//1.new thread的子类
Thread thread = new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread.start();
2.实现runnable接口
//2.new Runnable 把runnable对象放入thread中,thread去找runnable的run方法执行,这样更加提现面向对象
Thread thread2 = new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}){
};
thread2.start();
现在有一个问题,如果我们实现runnable接口再重写父类的run方法,那程序执行runnable的run方法还是执行父类的run方法?
//3.start执行,先找thread的run方法,直接执行thread的run方法。如果不覆盖父类的run方法,就执行runnable的run方法
Thread thread3 = new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println("threadrunnable:"+Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}){
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println("threadrun:"+Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread3.start();
相关文章推荐
- java线程:关于Callable和Future的简单使用:有返回值的线程
- java线程使用示例——最简单的线程
- java 使用线程做一个简单的ATM存取款实例.(转)
- Java—传统定时器的简单使用
- 【Java 线程的深入研究3】最简单实例说明wait、notify、notifyAll的使用方法
- Java线程的简单使用
- Java实现简单的贪吃蛇小游戏(使用线程、内部类、双向链表等)
- 多线程(三) java中线程的简单使用
- java 使用线程做的一个简单的ATM存取款实例代码
- Java线程同步中的wait()和notify()使用简单示例
- Java线程简单使用介绍zz
- JAVA线程的简单使用
- 线程操作,比 handler更简单的AsyncTask 使用详解-基础java线程
- [转]Java的开源项目:简单介绍Log4J的使用
- java中使用线程实现Timer(定时器)原理和源码
- 使用 java 的反射 和 comparator 实现java bean 的简单排序
- java中使用向量做的一个简单翻页程序
- Java语言中包的简单使用
- java线程简单介绍
- java中使用线程实现Timer(定时器)原理和源码