线程的创建与启动
这里参考了Thread类源码中的说明,将创建线程改为创建线程执行任务。个人理解,创建线程实际上就是new Thread()就完了,但是执行任务是由两种方式:重写Runnable接口,然后将重写的类作为Thread()构造函数的入参,调用run方法执行,或者直接继承Thread类去实现它的run方法。
创建线程执行任务
关于创建线程执行任务,我们阅读Thread类源码的注释:
There are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread. An instance of the subclass can then be allocated and started. For example, a thread that computes primes larger than a stated value could be written as follows:
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
The following code would then create a thread and start it running:
PrimeThread p = new PrimeThread(143);
p.start();
The other way to create a thread is to declare a class that implements the Runnable interface. That class then implements the run method. An instance of the class can then be allocated, passed as an argument when creating Thread, and started. The same example in this other style looks like the following:
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime