08/02/2019 - No Comments!

멀티 스레드 예제

예 프로그램 2: 이 프로그램의 출력을 관찰하고이 프로그램에서 무슨 일이 일어나고 있는지 이해하려고합니다. 각 스레드 메서드의 사용을 이해 한 경우이 예제를 이해 하 여 문제에 직면 하지 않아야 합니다. 차이점은 없습니다. 그것은 모두 필요와 요구 사항에 따라 달라집니다. 예를 들어 설명하겠습니다. Java는 여러 상속을 지원하지 않으므로 한 클래스만 확장(상속)할 수 있으므로 Thread 클래스를 확장한 후에는 Java에서 다른 클래스를 확장하거나 상속할 수 없습니다. 개체 지향 프로그래밍(OOP)에 따라 상속의 전체 목적은 부모 클래스의 메서드를 재정의하여 동작을 수정하거나 개선하는 새로운 기능을 추가하는 것입니다. 스레드에서 수정하지 않는 경우 Thread 클래스를 확장하는 대신 Runnable 인터페이스를 사용하는 것이 좋습니다. 이에 대해 논의할 사항이 몇 가지 더 있습니다. 나는 별도의 게시물에 자세히 다룰 것입니다. 나는 이것이 지금 의미가 있기를 바랍니다. 이렇게 하면 다음과 같은 결과가 생성됩니다.

이 예제를 반복해서 시도할 수 있으며 매번 다른 결과를 얻을 수 있습니다. 스레드가 시작되면 자체 run() 메서드를 실행하는 대신 MyClass 인스턴스의 run() 메서드를 호출합니다. 위의 예제는 "MyClass 실행 중"이라는 텍스트를 인쇄합니다. 위에서 언급했듯이 전역 및 정적 변수가 있는 여러 스레드를 표시하는 C 프로그램은 모든 스레드가 데이터 세그먼트를 공유합니다. 전역 및 정적 변수는 데이터 세그먼트에 저장됩니다. 따라서 모든 스레드에서 공유 됩니다. 다음 예제 프로그램은 동일한 것을 보여 줍니다. 두 번째 예에서 : 스레드는 스레드 키워드를 확장하여 생성됩니다. 이렇게 하면 새 스레드 클래스가 생성됩니다. 이제 Count 클래스는 위와 같이 스레드로 작동합니다. 위의 간단한 예는 스레드의 작동 방식을 보여 주는 간단한 예제입니다. 스레드에서 전역 변수에 액세스하는 것은 일반적으로 좋지 않습니다.

스레드 2가 스레드 1보다 우선 순위가 있고 스레드 1이 변수를 변경해야 하는 경우 는 무엇입니까? 실제로 여러 스레드에서 전역 변수에 액세스해야 하는 경우 뮤텍스를 사용하여 액세스해야 합니다. 스레드를 만드는 프로그램(코드)을 시작하기 전에 Thread 클래스의 이러한 메서드를 살펴보겠습니다. 아래 예제에서는 이러한 방법을 거의 사용하지 않습니다. 멀티 스레딩 및 멀티 태스킹의 가장 좋은 예 : 스레드의 동기화 된 방법의 다른 예를 제공 왜 멀티 스레딩? 스레드는 병렬 처리를 통해 응용 프로그램을 개선하는 데 널리 사용됩니다. 예를 들어 브라우저에서 여러 탭은 서로 다른 스레드일 수 있습니다. MS 워드는 여러 스레드, 하나의 스레드를 사용하여 텍스트의 서식을 지정하고 다른 스레드를 사용하여 입력을 처리합니다. 스레드는 다음과 같은 이유로 인해 프로세스보다 빠르게 작동합니다: 1) 스레드 생성이 훨씬 빠릅니다. 2) 스레드 간의 컨텍스트 전환이 훨씬 빠릅니다. 3) 스레드는 쉽게 종료 할 수 있습니다 4) 스레드 간의 통신이 빠릅니다. 스레드는 수명 주기의 다양한 단계를 거칩니다. 예를 들어 스레드가 태어나고, 시작되고, 실행되고, 죽습니다.

다음 다이어그램은 스레드의 전체 수명 주기를 보여 주었습니다. 스레드를 만드는 두 번째 방법은 Thread를 확장하는 새 클래스를 만든 다음 run() 메서드를 재정의한 다음 해당 클래스의 인스턴스를 만드는 것입니다. run() 메서드는 start()를 호출한 후 스레드에서 실행되는 메서드입니다. 다음은 Java Thread 하위 클래스를 만드는 예입니다: 새 스레드를 만들고 실행을 시작하는 예가 있습니다.이 예제에서는 동일한 리소스에 액세스하는 두 개의 스레드가 있습니다.

Published by: jeshurun

Comments are closed.