이 예제는 참조를 위해 Java에서 멀티 스레딩을 구현하는 세 가지 방법을 공유합니다. 특정 내용은 다음과 같습니다
import java.util.concurrent.callable; import java.util.concurrent.futuretask; public class main {public static void main (string [] args) {// 메소드 1 : int i = 0; // for (; i <100; i ++) {// system.out.println (gretname.) i); // if (i == 5) {// rewlextendsThreadsthreadthextendsThread = new The ResplexTendsThread (); // rewlextendsThread.start (); //} //} // 메소드 2 : unednable // (i = 0; i <100; i ++) {// system.out.out. (system. (system.current.) +" +" +" +" +" +" +" +" +" +" +" +. i); // if (i == 5) {// runnable runnable = new ThreadimplementsRunnable (); // new Thread (runnable) .start (); //} //} // 메소드 3 : 호출 가능한 인터페이스 구현 <integer> callable = new ThreadimplementsCallable (); FutureTask <integer> futuretask = 새로운 FutureTask <> (호출 가능); for (i = 0; i <100; i ++) {system.out.println (thread.currentthread (). getName () + "" + i); if (i == 5) {새 스레드 (FutureTask) .start (); 새 스레드 (FutureTask) .start (); }} try {System.out.println ( "FutureTask Ruturn :" + futureTask.get ()); } catch (예외 e) {e.printstacktrace (); }}} 방법 1, 스레드에서 상속
public class restrextendsthread는 스레드 {private int i; @override public void run () {for (; i <100; i ++) {System.out.println (getName () + "" + i); }}}실행 메소드는 스레드 실행 본체이고 rewlextendsThread 객체는 스레드 객체입니다.
방법 2 : 실행 가능한 인터페이스를 구현하십시오
공개 클래스 스레드implementsRunnable 구현 실행 가능 {private int i; @override public void run () {for (; i <100; i ++) {system.out.println (thread.currentthread (). getName () + "" + i); }}}실행 방법은 스레드 실행 본체입니다. 그것을 사용할 때, 스레드 객체는 새롭고 런닝 가능한 객체가 대상으로 스레드 객체로 전달됩니다. 동일한 런닝 가능한 객체는 여러 스레드의 대상으로 사용될 수 있으며 이러한 스레드는 실행 가능한 객체의 인스턴스 변수를 공유합니다.
방법 3 : 호출 가능한 인터페이스를 구현하십시오
import java.util.concurrent.callable; public class threadimplementscallable 구현 호출 가능 <integer> {private int i; @override public integer call ()는 예외를 {for (; i <100; i ++) {system.out.println (thread.currentthread (). getName () + "" + i); } 반환 i; }}호출 가능한 인터페이스는 런닝 가능한 인터페이스와 유사하지만 상대방보다 강합니다. 스레드 실행 본체는 통화 메소드이며 리턴 값이 있고 예외를 던질 수 있습니다. 사용될 때는 호출 가능한 객체를 FutureTask 객체로 래핑하고 제네릭을 통해 리턴 값 유형을 지정하십시오. FutureTask의 Get 메소드를 호출하여 실행 결과를 검색 할 수 있습니다.
위의 내용은이 기사에 관한 모든 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.