Java에서 멀티 스레딩을 구현하는 세 가지 방법
Java에는 멀티 스레딩을 구현하는 세 가지 방법이 있습니다. 첫 번째 방법 : 스레드 클래스를 상속하고 실행 함수를 재정의합니다. 두 번째 방법 : 실행 가능한 인터페이스를 구현하고 실행 함수를 다시 작성하십시오. 세 번째 방법 : 호출 가능한 인터페이스를 구현하고 호출 함수를 무시합니다. 이 기사에서는이 세 가지 방법이 예를 통해 어떻게 구현 될 수 있는지 설명합니다. 필요한 경우 참조하십시오.
(1) 스레드 클래스를 상속하고 실행 함수를 무시합니다.
클래스 XX는 스레드를 확장 {public void run () {Thread.Sleep (1000) // 스레드가 1000 밀리 초에 잠을 자고, 수면은 스레드가 블록 상태로 들어가서 릴리스 리소스}}}}}}}}}. 스레드 시작 :
Object.start () // 스레드를 시작하고 실행 함수를 실행하십시오
(2) 실행 가능한 인터페이스 구현, 코드는 다음과 같습니다.
클래스 신화는 실행 가능한 {개인 문자열 이름; public mythread (문자열 이름) {super (); this.name = 이름; } @override public void run () {for (int i = 0; i <200; i ++) {system.out.println ( "스레드"+이름+"--->"+i); }}} public class threaddemo {public static void main (String [] args) {mythread a = new Mythread ( "a"); 신화 B = 새로운 신화 ( "B"); Mythread C = New Mythread ( "C"); 새 스레드 (a) .start (); 새 스레드 (b) .start (); 새 스레드 (c) .start (); }}(3) 호출 가능한 인터페이스 구현 및 통화 함수를 다시 작성하십시오.
Callable은 Runnable과 유사한 인터페이스입니다. 호출 가능한 인터페이스를 구현하는 클래스와 런 가능성을 구현하는 클래스는 다른 스레드에서 실행할 수있는 작업입니다.
호출 가능과 달리기에는 몇 가지 차이점이 있습니다.
Java 호출 가능한 코드 예 :
클래스 taskwithresult를 구현할 수있는 <string> {private int id; public taskwithresult (int id) {this.id = id; } @override public string ()는 예외 {return "waskwithresult" + id를 던지는 예외를 던집니다. }} public class callableTest {public static void main (String [] args)은 InterruptedException, executionException {executorService exec = executors.newCachedThreadPool (); ArrayList <future <문자열 >> results = new arrayList <future <string>> (); // Future는 (int i = 0; i <10; i ++) {results.add (exec.Submit (new taskwithResult (i))에 대한 실행자 실행 결과를 저장하는 데 사용되는 컨테이너와 같습니다. } for (future <string> fs : results) {if (fs.isdone ()) {system.out.println (fs.get ()); } else {System.out.println ( "미래 결과는 아직 완료되지 않았다"); }} exec.shutdown (); }}읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!