[출처]
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=278&MAEULNo=20&no=16605&ref=16605
Thread에서 사용할수 있는 Data들(동기화). Array, Queue, Stack
Thread에서 이런 Data들을 사용할 경우 일일이 동기화하는 불편때문에 한번 만들어 봤습니다.
Array,Queue,Stack은 STL을 사용해서 만들었습니다.
클래스는
Array: CSyncArray, CSyncArrayPtr(data가 Pointer일때 사용, 메모리를 free시키기 위해 만들었습니다)
Queue: CSyncQueue, CSyncQueuePtr
Stack: CSyncStack, CSyncStackPtr
들입니다.
사용방법은 이 Header file을 Include하고.
예를들어.
#include "SyncDataType. h "
CSyncQueue<byte> Queue;
Queue.Push(3);
...
이런식으로 사용하면 됩니다.
사용해보시고 이상한 점있으면 알려주십시오.
그럼...많은 테스트 부탁드립니다.
스레드간 핸들링을 위해 세마포어와 함께 크리트컬 섹션을 이용했더라면 더 좋은 소스가 될거 같습니다..
그리고...각각의 큐의 한동작 동작에...크리티컬 색션을 두는것보단..큐포인터에만..크리티컬 섹션을 두는게..
더 효율적일거 같습니다.
%%
critical section 부분만 mutex 정도로 고치면 linux에서도 멋지게 돌지 않을까???