Java中实现线程的方式

Java支持多线程编程,并且Java已经将多线程实现了,我们只需要继承解可以了。

一. 编写一个类,直接继承java.lang.Thread类,重写run方法

  • 在Java中实现线程的第一种方式是直接继承Thread类
  • 怎么启动一个线程呢?调用这个线程的start()方法
  • 继承Thread类后必须重写run方法,run方法就相当于一个线程的入口,当线程被启动后,JVM会自动调用这个线程的run方法

下面是一个多线程编程的例子,JVM不仅启动了main的主线程,还启动了一个分支线程,每一个线程都会独占一个栈内存空间。从执行结果可以看出,两个线程是同时进行的。

Java中实现线程的方式                                   Java中实现线程的方式

一定要注意下面这段代码!对于一个线程对象,必须要调用它的start()方法吗?不一定!start()方法的作用是启动线程,开辟一个分支栈,当我们不去调用这个线程对象的start()方法时,就不会启动这个线程,也就是不会开辟一个新的分支栈。但是我们可以手动调用这个线程的run()方法,当我们调用run()方法时,run()方法的执行还是在main方法的主栈中,并没有用到多线程。从执行结果可以看出是先执行完run()方法,才又继续执行main中下面的代码的。

Java中实现线程的方式                          Java中实现线程的方式

二 实现Runable接口方式

编写一个类实现Runable接口,给这个类创建对象a,再创建一个线程对象b,将a作为参数传递给b

Java中实现线程的方式                       Java中实现线程的方式

三 匿名内部类的方式

其实,匿名内部类和第二种方式本质上是一样的,只不过写的形式不同,第三种用了匿名内部类。

Java中实现线程的方式               Java中实现线程的方式

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。