728x90
- 콘솔코드를 윈도우 코드로 변환(3/3)
- 콘솔 클라이언트 코드를 윈도우 코드로 옮기기
- 문제점
- 서버와 클라이언트 일대일 접속
- TcpListener.AcceptTcpClient()대기
- 이벤트 처리 vs 무한 반복
- 스레드(1/2)
- 목차
- 스레드 개요
- 스레드 생성과 사용
- 스레드 사용 예
- 스레드 주요 속성과 메소드
- 윈도우 네트워크 프로그래밍에 스레드 적용
(에코 서버와 클라이언트)
- 스레드의 개요
- 프로세스와 스레드
- 스레드는 운영체제의 자원이며 프로그램안에서 독립적으로 실행할 수 잇는 것
( 멀티 태스킹 운영체제 )
- 프로그램의 구성?
- 코드와 데이터
- 프로세스 ?
- 운영체제로부터 할당 받은 메모리에 코드와 데이터를 저장 및 CPU를 할당 받아 실행 가능한 상태 (== 메모리에 올라간상태)
- 메모리에 올리기위해서 운영체제의 도움을 받아야한다. 사용자가 exe파일을 더블클릭할경우 메모리에 코드와 데이터가 올라간뒤 cpu가 올라간 프로그램을 실행한다. cpu는 하나의 프로그램에서 독점하지 않도록 스케쥴링또한 운영체제 내부에서 처리한다.
- 스레드?
- 프로세스를 할당 받고 코드를 실행
- 프로세스 : 메모리 개념
- 스레드 : 실행 개념
- 스레드는 언제 실행되는가?
- 프로그램 실행 (main) // 주스레드 또는 메인스레드 , 싱글스레드, 독립
- // 프로그래머가 따로 설정안해도 자동으로 실행되는 스레드임
- 코드에 의해 (thread) //프로그래머의 의해 코드에서 실행된다.
- 스레드에 의해 실행되는 함수는 몇번 실행되는가?
- 단 한번 실행된다.
- 스레드 함수의 반복 처리?
- 반복문을 스레드 안에 넣어서 처리 // for/ while
- 스레드의 생성과 호출
- 스레드 함수의 호출 구조
- 호출 구조
- 스레드 함수를 구현
- 델리게이트 생성과 스레드 함수 설정
- 스레드 생성
- 스레드 실행
- 스레드 코드
- using System.Threading
- delegate 생성과 설정
- public delegate void ThreadStart()
- public void func() // 스레드 함수
{ … }
ThreadStart thStart = new ThreadStart( func ) ;
thStart.Start() ; // 스레드 실행!
- 매개변수를 참조할 수 있는 스레드 호출 함수
- public delegate void ParameterizedThreadStart(
object obj
)
Thread.Start( 매개변수 ) // 스레드 실행!
- 스레드 사용 예
- 기본 프로그래밍
- ParameterizedThreadStart() 사용 (1)
- 변수 넘기기
- ParameterizedThreadStart() 사용 (2)
- 객체 메소드 넘기기
728x90
'기타 공부 기록 > csharpnetwork인강' 카테고리의 다른 글
동기화(1/2) (0) | 2022.01.24 |
---|---|
스레드(2/2) (0) | 2022.01.24 |
콘솔코드를 윈도우 코드로 변환(2/3) (0) | 2022.01.17 |
콘솔코드를 윈도우 코드로 변환(1/3) (0) | 2022.01.13 |
네트워크 클래스 (5/5) (0) | 2022.01.13 |