Java创建线程的两种方式
前言
多线程是我们开发过程中经常遇到的,也是必不可少需要掌握的。当我们知道需要进行多线程开发时首先需要知道的自然是如何实现多线程,也就是我们应该如何创建线程。
在Java中创建线程和创建普通的类的对象操作是一样的,我们可以通过两种方式来创建线程:
1、继承Thread类,并重写run()方法。
2、实现Runnable接口,并实现run()方法。
方法一:继承Thread类
代码非常简单
首先重载一个构造函数,以便我们可以给线程命名。
重写run()方法。
这里我们先让线程输出线程名+start。
然后每5ms输出线程名+一个递增数。
/** *Createdbyholten.gaoon2016/10/17. */ publicclassthreadThreadextendsThread{ publicthreadThread(Stringname){ super(name); } @Override publicvoidrun(){ System.out.println(this.getName()+"start!"); for(inti=0;i<10;i++){ System.out.println(this.getName()+""+i); try{ Thread.sleep(5); }catch(InterruptedExceptione){ e.printStackTrace(); } } } }
方法二:实现Runnable接口
代码也非常简单
实现run()方法。
这里我们先让线程输出线程名+start。
然后每5ms输出线程名+一个递增数。
/** *Createdbyholten.gaoon2016/10/17. */ publicclassrunnableThreadimplementsRunnable{ @Override publicvoidrun(){ System.out.println(Thread.currentThread().getName()+"start!"); for(inti=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+""+i); try{ Thread.sleep(5); }catch(InterruptedExceptione){ e.printStackTrace(); } } } }
测试结果
测试代码
/** *Createdbyholten.gaoon2016/10/17. */ publicclassMain{ publicstaticvoidmain(String[]args){ ThreadthreadThread=newthreadThread("threadThread"); threadThread.start(); ThreadrunnableThread=newThread(newrunnableThread(),"runnableThread"); runnableThread.start(); } }
测试结果
threadThreadstart! threadThread0 runnableThreadstart! runnableThread0 threadThread1 runnableThread1 threadThread2 runnableThread2 threadThread3 runnableThread3 threadThread4 runnableThread4 threadThread5 runnableThread5 threadThread6 runnableThread6 threadThread7 runnableThread7 threadThread8 runnableThread8 threadThread9 runnableThread9
两种方法比较
1.因为Java只支持单继承,所以使用方法一就不能再继承其他类了;而方法二实现接口则不会影响继承其他类。
2.方法一由于是继承Thread,所以直接new出来就可以start;而方法二需要将对象作为参数传入Thread对象才能得到Thread对象。
3.方法一中可以直接通过this.getName获得线程名;而方法二需要Thread.currentThread().getName()获得
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。