在Java中要想实现多线程,有两种方式,一种是继承Thread类,另一种是实现Runable接口。java
方法一:多线程
经过Thread实现多线程ide
package multiThread; /** * 继承Thread类实现多线程 * * @author Leizhi 2016/5/18 * @see * @since 1.0 */ public class MultiThreadExtendsThread extends Thread { @Override public void run() { /** * 要实现的多线程代码 */ System.out.println("This multiThread is extends from Thread"); } }
方法二:操作系统
实现Runable接口实现多线程线程
package multiThread; /** * 实现Runable接口实现多线程 * * @author Leizhi 2016/5/19 * @see * @since 1.0 */ public class MultiThreadImpRunnable implements Runnable { @Override public void run() { System.out.println("This multiThread is implements from Runnable..."); } }
使用多线程
package multiThread; /** * 使用多线程 * * @author Leizhi 2016/5/19 * @see * @since 1.0 */ public class UseMultiThread { public static void main(String[] args) { /*继承Thread类的线程运行*/ MultiThreadExtendsThread multiThreadExtendsThread = new MultiThreadExtendsThread(); multiThreadExtendsThread.start(); /*实现Runable接口线程运行*/ MultiThreadImpRunnable multiThreadImpRunnable = new MultiThreadImpRunnable(); new Thread(multiThreadImpRunnable).start(); } }
运行效果截图code
Thread和Runnable的区别
若是一个类继承Thread,则不适合资源共享。可是若是实现了Runable接口的话,则很容易的实现资源共享。
实现Runnable接口比继承Thread类所具备的优点:
一、适合多个相同的程序代码的线程去处理同一个资源
二、能够避免java中的单继承的限制
三、增长程序的健壮性,代码能够被多个线程共享,代码和数据独立。继承
注意:接口
main方法其实也是一个线程。在java中因此的线程都是同时启动的,至于何时,哪一个先执行,彻底看谁先获得CPU的资源。在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。由于每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每个jVM实习在就是在操做系统中启动了一个进程。进程