Written by
java-style
on
on
new Thread().run()이 병렬로 실행되지 않는 문제
new Thread().run()이 병렬로 실행되지 않는 문제
TL; DR;
run대신 start를 사용한다
문제
Runnable run1 = new Thread();
Runnable run2 = new Thread();
run1.run();
run2.run();
위 코드에서 run2가 실행되지 않는다
환경 / 버전:
자바
에러 코드 :
없음
원인 :
run은 해당 쓰레드의 코드(run()메소드 안의 코드)를 실행할 뿐, 새로운 쓰레드를 실행하지 않는다.
start를 사용해야 쓰레드를 생성한다
추가적으로,
run과 start에는 다음 차이가 있다
run: run()메소드를 실행 // 내가 구현하는 메서드 // 여러번 호출 가능 // 새로운 쓰레드 흐름에서 실행됨
start: 새로운 쓰레드 실행후 run메소드 실행 // thread클래스에 정의된 메서드 // 한번만 호출가능 // 현재 쓰레드에서 실행됨
해결
run으로 교체
참조
Difference between Thread.start() and Thread.run() in Java. (tutorialspoint.com)
... 큰일났다. 면접 준비할 때 보다 바보가 되가고 있다
from http://prob-solv.tistory.com/12 by ccl(A) rewrite - 2021-11-06 15:27:42