老师,实现多线程的方式,应该只有两种吧?JDK的文档是这样描述的 http://www.matools.com/api/java8 创建一个新的执行线程有两种方法。 一个是将一个类声明为Thread的子类。 这个子类应该重写run类的方法Thread 。 然后可以分配并启动子类的实例。 另一种方法来创建一个线程是声明实现类Runnable接口。 那个类然后实现了run方法。 然后可以分配类的实例,在创建Thread时作为参数传递,并启动。
对,官网也说的是这两种创建线程的基本方法。在实现多线程本质上,两者其实没有什么区别,都是调用start()方法来创建线程,只是run()方法来源不同。实现runnable接口是通过调用target.run()方法,而继承Thread类是重写整个run()方法。归根结底,创建线程就是通过新建Thread类方式,但类里面的run方法有两种方式来实现,第一种是重写run方法,第二种实现 Runnable接口的run方法,然后再把该 runnable实例传给 Thread类。
老师,实现多线程的方式,应该只有两种吧?JDK的文档是这样描述的 http://www.matools.com/api/java8 创建一个新的执行线程有两种方法。 一个是将一个类声明为Thread的子类。 这个子类应该重写run类的方法Thread 。 然后可以分配并启动子类的实例。 另一种方法来创建一个线程是声明实现类Runnable接口。 那个类然后实现了run方法。 然后可以分配类的实例,在创建Thread时作为参数传递,并启动。