Java에서 MULTITHREADING에 대해 배우고 있는데 다음 코드에서 start 메소드가 실행될 때 하위 스레드가 즉시 실행되지 않는 이유를 알고 싶습니다. 자식 스레드?java multithreading - 하위 스레드가 즉시 시작되지 않음
대신 start 메소드를 실행 한 후 주 스레드는 코드를 계속 실행하고 "."인쇄를 시작합니다. 그것은 세 번하고 통제는 자식 스레드에 의해 수행됩니다. 그런 다음 하위 스레드는 해당 코드를 한 번 실행하고 주 스레드로 되돌아갑니다. 그런 다음 주 스레드가 완료되고 하위 스레드가 실행을 완료합니다.
왜 이러한 일이 발생하는지 이해할 수 없습니까?
class MyThread implements Runnable {
String thrdName;
MyThread(String name) {
thrdName = name;
}
public void run() {
System.out.println(thrdName + " starting.");
for (int count = 0; count < 10; count++) {
System.out.println("In " + thrdName + ", count is " + count);
}
}
}
class UseThreads {
public static void main(String args[]) {
System.out.println("Main thread starting.");
MyThread mt = new MyThread("Child #1");
Thread newThrd = new Thread(mt);
newThrd.start();
for (int i = 0; i < 50; i++) {
System.out.print(".");
}
}
}
동시성과 병렬성의 차이점을 알고 있습니까? – oldrinb
@veer ... 아직 아직 – user547453
@ user547453 +1 : D – MadProgrammer