C#의 잠금 구조는 스레드가 이미 실행 중인 코드 섹션에 다른 스레드가 진입할 수 없도록 보장합니다. 이는 실행 중인 스레드가 실행을 완료할 때까지 코드 섹션에 들어가려는 다른 스레드를 기다리거나 차단하도록 만듭니다. 잠금을 사용하는 것은 멀티스레딩 프로그래밍에서 스레드를 처리하는 더 빠르고 편리한 방법입니다.
구문
lock(object_name) statement_block
어디,
아래 예시를 찾아보세요.
스레드가 코드의 중요 섹션에서 이미 실행 중인 동안 다른 스레드의 실행을 차단하는 잠금을 보여주는 C# 프로그램:
코드:
using System; using System.Threading; //a namespace called program is defined namespace program { //a class called check is defined class check { //an object that defines a lock is created static readonly object lockname = new object(); //a method called display is created in which the lock is used to make any other threads trying to access the method wait or block until thread that is already executing completes its execution static void display() { //keyword lock is used to lock the object lock (lockname) { for (int a = 1; a <= 3; a++) { //the output is displayed synchronously in a row by one thread followed by another thread because we have used lock on display method Console.WriteLine("The value to be printed is: {0}", a); } } } static void Main(string[] args) { //an instance of the thread is created and the corresponding thread is executed on the display method Thread firstthread = new Thread(display); //an instance of the thread is created and the corresponding thread is executed on the display method Thread secondthread = new Thread(display); firstthread.Start(); secondthread.Start(); Console.ReadLine(); } } }
출력:
설명: 위 프로그램에서 프로그램은 “program”이라는 네임스페이스를 정의합니다. 그런 다음 "check"라는 클래스를 정의합니다. 이 방법은 잠금을 활용하여 액세스를 시도하는 다른 스레드가 현재 실행 중인 스레드가 실행을 마칠 때까지 대기하거나 차단하도록 만듭니다. 위의 스냅샷은 출력을 표시합니다.
스레드가 코드의 중요 섹션에서 이미 실행 중인 동안 다른 스레드의 실행을 차단하는 잠금을 보여주는 C# 프로그램:
코드:
using System; using System.Threading; //a namespace called program is defined namespace program { //a class called check is defined class check { //an object that defines a lock is created static readonly object lockname = new object(); //a method called display is created in which the lock is used to make any other threads trying to access the method wait or block until thread that is already executing completes its execution static void display() { //keyword lock is used to lock the object lock (lockname) { for (int a = 1; a <= 3; a++) { //the output is displayed synchronously in a row by one thread followed by another thread because we have used lock on display method Console.WriteLine("The first three lines are printed by first thread and the second three lines are printed by the second thread"); } } } static void Main(string[] args) { //an instance of the thread is created and the corresponding thread is executed on the display method Thread firstthread = new Thread(display); //an instance of the thread is created and the corresponding thread is executed on the display method Thread secondthread = new Thread(display); firstthread.Start(); secondthread.Start(); Console.ReadLine(); } } }
출력:
설명: 프로그램은 "program"이라는 네임스페이스를 정의한 다음 "check"라는 클래스를 정의합니다. 잠금을 나타내는 객체를 생성합니다. 이전에 생성된 객체를 잠그기 위해 “lock”이라는 키워드를 사용합니다.
이 튜토리얼에서는 프로그래밍 예제와 그 출력을 통해 잠금의 정의, 구문, 작동을 통해 잠금 C#의 개념을 이해합니다.
위 내용은 C#에 고정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!