비디오: 이것이 자바다 - 12.1 멀티 스레드 개념 2024
잘 보관 된 비밀이 있습니다: Java 프로그램은 다중 스레드, 는 Java 프로그램을 실행할 때마다 여러 가지 일이 동시에 진행된다는 것을 의미합니다. 물론 컴퓨터가 작성한 코드를 실행하고 있지만 다른 코드 (작성하지 않은 코드와 보지 않은 코드)도 실행 중입니다.
이 코드는 모두 동시에 실행됩니다. 컴퓨터가 주 방법의 문장을 차례로 실행하는 동안 컴퓨터는 시간이 오래 걸리고 잠시 숨어서 다른 보이지 않는 방법으로 문장을 실행합니다. 대부분의 간단한 Java 프로그램의 경우 이러한 다른 메소드는 JVM (Java Virtual Machine)의 일부로 정의 된 메소드입니다.
예를 들어, Java는 이벤트 처리 스레드를 가지고 있습니다. 코드가 실행되는 동안 이벤트 처리 스레드의 코드가 백그라운드에서 실행됩니다. 이벤트 처리 스레드의 코드는 마우스 클릭을 수신하고 사용자가 마우스를 클릭 할 때마다 적절한 조치를 취합니다. 이 그림은 어떻게 작동하는지 보여줍니다.
사용자가 버튼을 클릭하면 이벤트 처리 스레드가 "알았습니다. 버튼을 클릭했습니다. 그래서 그것에 대해 어떻게해야합니까? "그리고 대답은"actionPerformed 메소드를 호출하십시오. "마치 이벤트 처리 스레드가 다음과 같은 코드를 가진 것처럼 보입니다:
if (buttonJustGotClicked ()) {object1. actionPerformed (infoAboutTheClick); object2. actionPerformed (infoAboutTheClick); object3. actionPerformed (infoAboutTheClick);}
물론 모든 대답 뒤에는 또 다른 질문이 있습니다. 이 상황에서 후속 질문은 다음과 같습니다. "이벤트 처리 스레드가 actionPerformed 메소드를 호출하여 어디에서 찾을 수 있습니까? "또 다른 질문이 있습니다."이벤트 처리 스레드가 코드에 숨어있는 특정 actionPerformed 메서드를 호출하지 않도록하려면 어떻게해야합니까? "
자, addActionListener 메소드를 호출하는 이유입니다. 목록에서
통화 버튼을 누릅니다. addActionListener (this);
는 이벤트 처리 스레드에게 "호출 할 메서드 목록에이 코드의 actionPerformed 메서드를 추가합니다. 버튼을 클릭 할 때마다이 코드의 actionPerformed 메소드를 호출하십시오. "
그것이 작동하는 방식입니다. 컴퓨터가 actionPerformed 메소드를 호출하게하려면 메소드를 Java의 이벤트 처리 스레드로 등록하십시오. addActionListener를 호출하여이 등록을 수행합니다. addActionListener 메소드는 클릭 (및 기타 이벤트)이 대기중인 객체에 속합니다.
목록에서 버튼 객체가 클릭되기를 기다리고 있고 addActionListener 메소드가 해당 버튼 객체에 속해 있습니다.