我们先来看段示例代码
Import Java.util.Concurrent.Callable; Import Java.util.Concurrent i); // if (i == 5) {// threadextendsThreadendendsThread = new threadextendsThread (); // threadextendsThread.start (); //} //} // 方法二 : 实现 实现 Runnable // für (i = 0; i <100; i ++) {// system.out.Unt.) (). i); // if (i == 5) {// runnable runnable = new ThreadImplementsRunnable (); // neuer Thread (runnable) .Start (); // neuer Thread (runnable) .Start (); //} //} // 方法三 : 实现 Callable 接口 Callable <intiere, Anrufablinge = neuer ThreadAmplements -Callable = New ThreadPlementsCallable (); Futuretask <Gearner> futuretask = new futuretask <> (Callable); für (i = 0; i <100; i ++) {System.out.println (thread.currentThread (). getName () + "" + i); if (i == 5) {neuer Thread (futuretask) .Start (); neuer Thread (futuretask) .Start (); }} try {system.out.println ("futuretask ruturn:" + futuretask.get ()); } catch (Ausnahme e) {e.printstacktrace (); }}}接下来我们来详细探讨下 Java 实现多线程的几种方式
方法一 , 继承自 Thread
öffentliche Klasse ThreadendendsThread erweitert Thread {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (getName () + "" + i); }}}Führen Sie 方法为线程执行体 , , ThreadendendsThread 对象即为线程对象。 aus
方法二 , 实现 Runnable 接口
öffentliche Klasse ThreadImplementsRunnable implements Runnable {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (Thread.currentThread (). GetName () + " + i); }}}Ausführen 方法为线程执行体 , 使用时 neu 一个 Thread 对象 , Runnable 对象作为 Ziel 传递给 Thread 对象。且同一个 Runnable 对象可作为多个 Thread 的 Ziel , 这些线程均 享 享 Runnable 对象的实例变量。
方法三 , 实现 Callable 接口
importieren java.util.concurrent @Override public Integer call () löst eine Ausnahme aus {für (; i <100; i ++) {System.out.println (Thread.currentThread (). GetName () + "" + i); } return i; }}Anruf