记录Java线程的使用方法,是为个人笔记。
Overview/使用步骤概述
Core Java中提到线程的使用步骤:
- 把任务代码放到一个实现了Runnable接口的class中,比如MyRunnable;
- 创建Runnable对象:Runnable r = new MyRunnable();
- 创建线程对象:Thread t = new Thread(r);
- 启动线程:t.start();
一个简单的示例代码
这个代码没有Core Java中弹跳球那么复杂。
public class ThreadExample {
public static void main(String[] args) {
ThreadExample ex = new ThreadExample();
ex.foo();
System.out.println("Thread has been started.");
}
void foo() {
Runnable r = new Adding();
Thread t = new Thread(r);
t.start();
}
class Adding implements Runnable {
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println(i + "*" + i + "=" + i * i);
}
}
}
}
运行结果:
Thread has been started.
0*0=0
1*1=1
......
999*999=998001
可以看到线程中真正的任务还没有执行,就已经返回到调用代码。
可以尝试把main()中增加一个sleep:
public static void main(String[] args) {
ThreadExample ex = new ThreadExample();
ex.foo();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Thread has been started.");
}
运行结果就是:
0*0=0
1*1=1
......
999*999=998001
Thread has been started.