JAVA线程的创建方式

♀尐吖头ヾ 提交于 2020-02-22 16:44:01

JAVA创建线程的两种方式

(我看网上有一部分帖子写JAVA创建线程有三种方式,其实是不完全正确的。java的官方文档中明确声明了只有两种创建方式,第三种使用线程池的其实并不算是,他的原理也是使用了implement Runnable的方式。)

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:

(有两种方法,可以创建新的线程。一种是将类声明为Thread的子类。这个子类的实例将会等待被分配和启动。例如,计算素数大于指定值的线程可以编写如下:)


     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:

(另一种创建线程的方式是生命一个类 去实现 Runnable接口。然后,该类实现run方法。创建线程的另一种方法是声明一个实现Runnable接口的类。 然后,该类实现run方法。然后这个类的实例,在创建线程的时候当做一个参数传入,并启动。相同类型的例子如下所示:)


     class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(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:

(下面的代码将创建一个线程并启动它运行:)

     PrimeRun p = new PrimeRun(143);
     new Thread(p).start();

上面的文档来源于JAVA官方文档(Thread部分):https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Thread.html

(上面是我小学英语的水平加上百度翻译的成果,可能不太对,欢迎各位客官提出问题)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!