본문 바로가기

IT/C#, NHibernate

C# _ 스레드(쓰레드,Thread) _1 스레드란?

반응형
스레드는 무엇일까요?

스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다.
(_ 위키피디아 발췌)

C#  및 프로그래밍 입장에서 보면 어떤 프로그램에서 실행되는 함수를 말한다고 할수 있습니다.
또한 멀티스레드는 한프로그램에서 두개 이상의 함수가 동시불리는것(실행)되는것 이라고 할수 있습니다.

*스레드 생성했을 때 주의 할 점
 1. Priority
 2. Synchronization

입니다.

쉽게 말해 1.priority 우선권 입니다.

예를 들어 
A() 함수와 B()라는 함수가 실행되고 있을 때 변수 i 를 동시에 접근한다고 생각해 봅시다
만약 두개가 동시에 접근을 하면 나중에 프로그래머가 원하는값이 안나올수도 있습니다. 그렇기 떄문에 Priority 즉 두개의 함수 중 어떤 함수가 먼저 우선 변수 i 에 접근을 할수 있게 할것인지 정해줘야 합니다.

2.Synchronization동기화 입니다.

A()함수와 B()함수가 변수 i 에 접근을 하여 값을 계산 하는데 서로 값이 같지 않다면 나중에 문제가 생길것입니다. 이것을 막기위해 즉 똑같이 하기위해 동기화 라는게 필요 합니다.