...
| Code Block | ||
|---|---|---|
| ||
final class ThreadStarter implements Runnable {
public void startThread() {
Thread thread = new Thread(this);
thread.start();
}
@Override public void run() {
// ...
}
}
|
Exceptions
TSM01-J-EX0: It is safe to create a thread in the constructor, provided the thread is not started until after object construction is complete, because a call to start() on a thread happens-before any actions in the started thread [JLS 2015].
...
| Code Block | ||
|---|---|---|
| ||
final class ThreadStarter implements Runnable {
Thread thread;
public ThreadStarter() {
thread = new Thread(this);
}
public void startThread() {
thread.start();
}
@Override public void run() {
// ...
}
}
|
TSM01-J-EX1: Use of the ObjectPreserver pattern [Grand 2002] described in TSM02-J. Do not use background threads during class initialization is safe and is permitted.
...