Java基础--多线程


1.启动线程的注意事项

无论何种方式,启动一个线程,就要给它一个名字!这对排错诊断
系统监控有帮助。否则诊断问题时,无法直观知道某个线程的用途。

启动线程的试:

a.

Thread thread = new Thread("thread name") {
public void run() {
// do xxx
}
};
thread.start();

b.

public class MyThread extends Thread {
public MyThread() {
super("thread name");
}
public void run() {
// do xxx
}
}
MyThread thread = new MyThread ();
thread.start();

c.

Thread thread = new Thread() {
public void run() {
// do xxx
}
};
thread.setName("thread name");
thread.start();

d.

Thread thread = new Thread(task); // 传入任务
thread.setName(“thread name");
thread.start();

e.

Thread thread = new Thread(task, “thread name");
thread.start();

2.要响应线程中断

程序应该对线程中断作出恰当的响应。

a.

Thread thread = new Thread("interrupt test") {
public void run() {
for (;;) {
doXXX();
if (Thread.interrupted()) {
break;
}
}
}
};
thread.start();

b.

public void foo() throws InterruptedException {
if (Thread.interrupted()) {
throw new InterruptedException();
}
}

c.

Thread thread = new Thread("interrupt test") {
public void run() {
for (;;) {
try {
doXXX();
} catch (InterruptedException e) {
break;
} catch (Exception e) {
// handle Exception
}
}
}
};
thread.start();

相关