다선정 실현의 세 가지 방법
주요 단계:
4
4
4
class MyThread implements Runnable {
// create my own Thread class
public void run() {
System.out.println("Thread body");
}
}
public class Test {
public static void main(String[] args) {
MyThread thread = new MyThread();
Thread t = new Thread(thread);
t.start(); //start the thread
}
}
둘.Thread 클래스를 계승하고 런 방법을 다시 씁니다.
Thread는 Runnable 인터페이스를 실현한 실례로 하나의 라인의 실례를 대표하고 라인을 시작하는 유일한 방법은 Thread 종류의 start () 방법을 통과하는 것이다.start () 방법은 native (로컬) 방법으로 새 라인을 시작하고run () 방법을 실행합니다. (Thread에서 제공하는run () 방법은 빈 방법입니다.start () 방법이 호출되면 바로 다중 루틴 코드를 실행하는 것이 아니라, 이 루틴을 실행 가능한 (Runnable) 상태로 바꾸고, 다중 루틴 코드를 언제 실행할지 운영체제에 의해 결정됩니다.
class MyThreadB extends Thread {
public void run() {
System.out.println("Thread body");
}
}
public class Test {
public static void main(String[] args) {
MyThreadB thread = new MyThreadB();
thread.start();
}
}
셋.Callable 인터페이스를 구현하고 call () 방법을 다시 씁니다.
. Callable 대상은 실제적으로 Executor 프레임워크의 기능 클래스에 속하고 Callable 인터페이스는 Runnable 인터페이스와 유사하지만 다음과 같은 세 가지 기능을 제공합니다. **
4
4
4
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
* Created by qd on 12/5/17.
*/
public class CallableAndFuture {
public static class CallableTest implements Callable {
public String call() throws Exception {
return "Hello World!";
}
}
public static void main(String[] args) {
ExecutorService threadPool = Executors.newSingleThreadExecutor();
Future future = threadPool.submit(new CallableTest());
try {
System.out.println("waiting thread to finish");
System.out.println(future.get()); // ,
} catch (Exception e) {
e.printStackTrace();
}
}
}
다중 루틴을 실현해야 할 때 일반적으로 Runnable 인터페이스를 실현하는 방식을 추천한다. 이유는 다음과 같다. 먼저Thread류는 여러 가지 방법이 파생류에 의해 사용되거나 다시 쓸 수 있지만 런 방법만 다시 써야 한다. 런 방법에서 이 루틴의 주요 기능을 실현한다.이것은 당연히 Runnable 인터페이스를 실현하는 데 필요한 같은 방법이다.그리고 많은 자바 개발자들은 하나의 클래스가 강화되거나 수정되어야 계승될 수 있다고 생각한다.따라서 Thread 클래스의 다른 방법을 다시 사용할 필요가 없다면 Thread의 실현 방식을 계승함으로써 Runnable 인터페이스를 실현하는 것과 같은 효과가 있을 경우 Runnable 인터페이스를 실현하는 방식으로 라인을 만드는 것이 좋다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.