Red Baron

SEARCH RESAULT : 글 검색 결과 - DB POOL (총 1개)

POST : Program

DB POOL[WIN32]

다중 쓰레드 상에서 데이터 베이스 커넥션 풀을 구현 하기 위해서
여러가지 락을 사용할수 있지만 IOCP모델등에 병합하기 위해 아래와
같은 쓰레 구현을 사용하였다.
인터페이스는 아래와 같다.


주의 해야 할점은 Get/Release 상황에서 Locking / Unlocking에 대한 이해 부분이다.
쓸모 없이 Lock/Unlock을 남발하여 리소스를 낭비 할수 있기 때문에

구현에서는 다중 뮤텍스락에 대해 WaitForMultipleObjects을 사용하였다.

Get/Release 코드는 아래와 같다.

Get

Wait 상황에서 리턴되는 값의 Valid함을 보장하고 그 값에서 해당 뮤텍스를 리턴 하도록 한다.

Release

Release를 하는 경우 해당 뮤텍스를 릴리즈 하여 대기중인 쓰레드에게 해당 뮤텍스에 대한 권한을 승계 하도록 만든다.

만일 뮤텍스의 값에 널값을 넣거나 게 되면 WaitForMultipleObjects에서 에러가
발생 하게 되므로 주의 하도록 한다.
top

posted at

2007. 1. 12. 13:39


CONTENTS

Red Baron
BLOG main image

RSS 2.0Tattertools
공지 아카이브
최근 글 최근 댓글 최근 트랙백
카테고리 태그 구름사이트 링크