第一种体式格局,定义Thread类的子类:
//第一种要领 public class MyThread extends Thread { @Override public void run() { String name = getName(); // 猎取线程称号 System.out.println(name); // 输出 Thread-0 } }
//第二种要领 public class MyThread extends Thread { @Override public void run() { Thread t = Thread.currentThread(); // 猎取当前线程 System.out.println(t); // 下面挪用后输出 Thread[Thread-0,5,main] System.out.println(t.getName());// 输出 Thread-0 } }
java相干视频引荐:java在线进修
开启多线程:
public class demo1Test { public static void main(String[] args) { MyThread mt = new MyThread(); mt.start();// 会运转MyThread的run()要领 } }
第二种体式格局,完成Runnable接口:
完成步骤:
1.建立一个Runnable 接口的完成类
2.在完成类中重写Runnable接口的run要领,设置线程使命
3.建立一个Runnable接口的完成类对象
4.建立Thread类对象,组织要领中通报Runnable接口的完成类对象
5.挪用Thread类中的start要领,开启新的线程实行run要领
public class Runnableimpl implements Runnable {//1.建立一个Runnable 接口的完成类 @Override public void run() { for (int i = 1; i <= 20; i++) {// 2.在完成类中重写Runnable接口的run要领,设置线程使命 System.out.println(Thread.currentThread().getName() + i); } } }
public class demo2Test { public static void main(String[] args) { Runnable run = new Runnableimpl();//3.建立一个Runnable接口的完成类对象 Thread t = new Thread(run); //4.建立Thread类对象,组织要领中通报Runnable接口的完成类对象 t.start();//5.挪用Thread类中的start要领,开启新的线程实行run要领 for (int i = 1; i <= 20; i++) { System.out.println(Thread.currentThread().getName() + i); } // Thread-0和main入手下手多线程争夺cpu } }
完成Runnable接口建立多线程的优点:
1.避免了单继续的局限性:
一个类只能继续一个类,类继续了Thread后就不能继续其他的类
完成了Runnable接口,还能够继续其他的类,完成其他接口。
2.增强了顺序的扩展性,降低了顺序的耦合性
完成Runnable接口的体式格局,把设置线程使命和开启线程使命举行星散
完成类中,重写run()要领,用来设置线程使命。
建立Thread类对象,挪用start()要领,用来开启新线程
sleep( )要领,使要领就寝
public class sleepTest { public static void main(String[] args) { for (int i = 0; i < 20; i++) { //运用Thread类的sleep要领,让要领就寝1秒钟 try { Thread.sleep(1000);//传入的是毫秒值 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(i); } } }
java相干文章教程引荐:java疾速入门
以上就是java中多线程的完成的细致内容,更多请关注ki4网别的相干文章!