나는 모드가 Runnable
인터페이스를 구현하는 클래스를 가지고 있습니다.스레드없이 Runnable을 구현하는 Java 클래스
이제 부울에 따라 프로그램에서 멀티 스레드 또는 비 멀티 쓰레드 (순차) 클래스를 시작하려고합니다.
어떻게해야할까요?
Constructor<?> constructor = processorClass.getConstructor(constructorParameterTypes);
Processor<T> process = (Processor<T>)constructor.newInstance(constructorParameters);
RunnableProcessor<T> runnableProcessor = new RunnableProcessor<>(process, object);
if (multiThreaded) {
new Thread(runnableProcessor).start();
}
else {
//what to do here?
}
그래서 명확히하기 : 내가 스레드를 생성하지 않고,
runnableProcessor
에서
run()
메소드를 호출 할이 내 현재 코드입니다. 그러나
run()
을 직접 호출하는 것이 더 이상 권장되지 않으므로 더 나은 솔루션을 찾으려고합니다.
감사합니다.
multithreded의 의미는 무엇입니까? 당신은 새로운 스레드를 시작하지만 첫 번째 옵션은 sencond에서 async as as synchronized로 시작한다. –
새 프로젝트에 원시 스레드를 사용하지 말 것을 제안합니다. 대신 ExecutorService API를 사용하는 것이 좋습니다. 그것은 당신을 위해 쓰레드의 라이프 사이클을 관리하는 + 당신을 위해 캐싱되고 풀 된 쓰레드를 제공 할 수있는 많은 구현을 가지고 있습니다. 당신의 코드에서, 당신은'executor.execute (someRunnable); – Multithreader