컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - C 멀티스레드 프로그래밍 교육 정보

C 멀티스레드 프로그래밍 교육 정보

Windows NT 및 Windows 9x에서 멀티 스레드 프로그래밍을 위해서는 CreateThread, ResumeThread 등과 같은 일련의 API 함수를 호출해야 하는데 이는 번거롭고 오류가 발생하기 쉽습니다. 우리는 멀티스레드 프로그래밍을 쉽게 구현할 수 있는 Inprise의 차세대 RAD 개발 도구인 C++Builder를 사용합니다. 기존 RAD 도구인 Visual Basic 및 Delphi와 비교할 때 C++Builer는 매우 강력할 뿐만 아니라 프로그래밍 언어가 C++입니다. 시스템 개발 언어가 C인 Windows 시리즈 운영 체제의 경우 다른 프로그래밍 언어에 비해 비교할 수 없는 이점이 있습니다. C++Builder에서 제공하는 TThread 객체를 사용하면 멀티스레드 프로그래밍이 매우 간단하고 사용하기 쉬워집니다. 그렇다면 그것을 달성하는 방법은 무엇입니까? 멀티스레딩의 강력한 기능을 경험할 수 있도록 천천히 알려드리겠습니다.

1. 멀티스레딩 프로그램 만들기:

먼저 멀티스레딩을 구현하는 구체적인 단계를 소개하겠습니다. C++Builder에서 스레드의 개념을 설명하기 위해 Tthread 개체가 사용되었지만 Tthread 개체 자체는 불완전합니다. 스레드 개체를 사용하려면 TThread 아래에 새 하위 클래스를 만들고 Execute 메서드를 오버로드해야 합니다. 이는 C++Builder에서 쉽게 달성할 수 있습니다.

C++Builder IDE 환경에서 File|New 메뉴를 선택하고 New 열에서 Thread Object를 선택한 다음 OK를 누르면 입력 상자가 팝업됩니다. TThread의 MyThread 이름을 입력하세요. C++Builder가 자동으로 TMyThread라는 TThread 하위 클래스를 생성하도록 합니다.

동시에 편집기에는 Unit2.cpp라는 추가 유닛이 있습니다. 이것은 우리가 만든 TMyThread 하위 클래스의 원본 코드입니다.

#include

# pragma hdrstop

p>

#include “Unit2.h”

#pragma package(smart_init)

//—————————— ———————————————— ---------

// 중요: VCL에 있는 객체의 메서드와 속성은

/만 가능합니다. / 동기화를 사용하여 호출되는 메서드에 사용됩니다. 예:

//

// 동기화(UpdateCaption)

//

// UpdateCaption은 다음과 같습니다:

//

// void __fastcall MyThread::UpdateCaption()

// {

// Form1-gt; Caption = "스레드에서 업데이트됨"

// }

//--------------- ------

__fastcall MyThread: :MyThread(bool CreateSuspended)

: TThread(CreateSuspended)

{

}

//-------- -------------

void __fastcall MyThread::Execute()

{

//---- 여기에 스레드 코드를 입력하세요 ------

}

//---------- ---------------

Execute() 함수는 스레드에서 구현하려는 작업의 코드가 있는 곳입니다. 원본 코드에 Unit2.cpp를 포함시키면 우리가 생성한 TMyThread 객체를 사용할 수 있습니다. 사용하는 경우에는 TMyThread 객체를 동적으로 생성하고 생성자에서 Resume() 메소드를 사용합니다. 그러면 자체적으로 정의한 새로운 TMyThread 스레드가 프로그램에 추가됩니다. 구체적인 실행 코드는 Execute() 메소드에 의해 오버로드된 코드입니다. 더 많은 스레드를 로드하는 것은 중요하지 않습니다. 필요한 만큼 TMyThread 객체를 계속해서 생성하면 됩니다.

上篇: 렝웨신은 왜 양멍옌과 동행하기 위해 동물로 화신했나요? 下篇: 호스트 도메인 이름의 일반적인 형식은 무엇입니까
관련 내용