>source

"동기화된 블록이나 동기화된 기능 또는 ThreadUnSafe code가 없는 스레드는 비동기식이고 이들 중 하나가 있는 스레드는 동기식입니다."라고 말하는 것이 맞습니까?

동기 또는 비동기가 스레드와 관련이 있습니까? 그렇다면 스레드가 동기인지 비동기인지 어떻게 알 수 있습니까?

스레드 A가 다른 스레드 B를 시작하면 스레드 B 내부에서 실행 중인 것은 스레드 A와 비동기식입니다. 스레드 B에서 실행되는 code는 중요하지 않습니다.

JEY2022-01-30 01:21:14

귀하의 질문은 너무 구체적이지 않으므로 귀하의 질문에 대한 대답은 "아니요, 그렇게 말하는 것이 옳지 않습니다."입니다. 최신 운영 체제의 관점에서 모든 스레드는 비동기식으로 작동합니다. 그리고 이러한 비동기 스레드 중 일부는 요구되는 기능을 달성하기 위해 때때로 동기화되어야 합니다. 동기식으로 실행될 수 있는 유일한 프로그램은 독립 CPU + 독립 메모리 + 독립 시스템 클록을 완전히 제어하는 ​​프로그램일 수 있습니다.

paladin2022-01-30 01:21:14

아니요, 스레드와 관련이 없습니다. "code는 별도의 스레드에서 실행되는 경우에만 비동기식으로 실행할 수 있습니다"라고 말할 수 있습니다. 물론 비동기 실행은 "단계를 벗어난" 것을 의미합니다. 즉, 예를 들어 언급한 동기화 구성 중 하나를 사용하여 실행을 능동적으로 동기화합니다. 다른 것들은 Locks, Semaphores, CountDownLatches 등을 포함합니다. 고양이의 가죽을 벗기는 여러 가지 방법.

Thomas Timbul2022-01-30 01:21:14

이것이 귀하의 질문에 대한 답변입니까? 비동기 대 동기 실행, 주요 차이점은 무엇입니까?

Thomas Timbul2022-01-30 01:21:14

(1) 스레드는 "동기화" 또는 "비동기화"가 아닙니다. 스레드에 의해 실행되는 작업은 동기화 또는 비동기일 수 있습니다. 비동기는 기본적으로 반환 값이 아닌 미래의 시간에 결과를 얻는다는 것을 의미합니다. 동일한 스레드가 동기화 및 비동기 작업을 혼합하여 실행할 수 있습니다. (2) Java 문 의미에서 "동기화됨"은 작업이 동기화인지 비동기인지 여부와 완전히 다릅니다. 그것은 동시 작업의 안전과 관련이 있습니다. 동기화 및 비동기 스레드 모두 "동기화" 방법을 사용할 수 있습니다.

passer-by2022-01-30 01:21:14
  • 이전 파이썬에서 메서드를 잠그시겠습니까?
  • 다음 Mac에서 Apache nifi가 시작되지 않음