안녕하세요.... 프로그램... 짜다가.. 질문을 드립니다.
지금.. 쓰레드를 이용한 프로그램을 만들었거든여...
그니까... 우선 폼하나 만들고.. 거기에 버튼을 두고... DB에 저장되어 있는 자료..
즉 레코드하나하나를 쓰레드를 생성시켜 할당하여 레코드 하나하나.. 작업을 처리하는
프로그램을 만들었습니다. 그래서.. 실행시키면.. 잘 돌아가거든여....
근데... 이걸.. 다른 폼에.. 통합시켰을 경우..
그니까... 또다른 메인 폼을 만들고.. 거기에 버튼을 하나 두어 쫌전에 설명한.. 쓰레드 작업 폼을 추가하였습니다.
그러니까... 새로 만든 메인폼에서.. 버튼을 눌렀을 경우 쓰레드 작업을 하는 폼이
뜨는 것입니다. 이렇게 만들어 돌렸을 경우.. 쓰레드 폼 하나만 돌렸을 때.에는 ..
제대로 돌아가는... 이렇게 메인폼에서.. 버튼을 눌러 쓰레드 폼을 생성하여 실행하면...
실행하다가.. 멈춰버립니다.....
우..음.. 첨엔...message passing에 문제가 있을거라고 생각했었어요.. 왜냐면..
postmessage라는 API함수를 사용했었거든여.. 근데.. 그문제는.. 아닌거 같고...
두번째로.. 생각한것이.. 스레드 작업폼에.. 변수를 전역으로 선언했거든여...
그니까... 쓰레드가 생성될때마다.. 그 갯수를.. 저장하는 전역변수가 있습니다.
그리고 하나의 레코드에 대해서 수행되던 쓰레드가..종료되면.. 물론. 그 전역변수의 개수도
줄어들게 됩니다.
생각해보니까.... 혹시.. 상호배제문제가 생길 수도.. 있지 않을까.. 하는 생각이 들
더군여... 혹시 이런 문제로... 예전에.. 문제가 발생해서.. 해결봤던.. 선배님들이나...
알고 계신 선배님들의 도움 부탁드립니다.....
이걸... 꼭 해결해야만.. 하거든여... 몇시간동안.. 낑낑... 대구.. 있는데...
도저히 해결이 안나서.. 이렇게... 질문을 드립니다....
꼭좀 부탁드립니다......
말씀하신대로라면 똑같은 질의를 여러 쓰레드에서 동시에 수행하는 것으로
보이는데, 질의에 따라 Lock이 걸릴 수도 있습니다.
Lock 이 걸리면 당연히 다음 질의부터는 "일단 Stop"이 되겠죠 ?
즉, 두번째 Thread부터는 첫번째 Thread가 종료 또는 DB Lock이 해제될 때까지
무작정 기다릴겁니다.