|
안녕하세요..
이제 막 쓰레드를 적용시켜 볼려고 합니다..
그런데 몇가지 걸리는 문제가 있어서 이렇게 질문을 올립니다..
1. 쓰레드가 돌아가는 도중에 다음과 같은 코드가 적혀있는 루틴을 지났습니다.
tempThread->Terminate();
delete tempThread;
그러면 쓰레드가 종료되는 시점이..
tempThread::Execute() 내에 있는 while(!Terminated) 루프에서 Terminated 값이 true로 되면서
빠져나오는것인가요? 아니면 루프 중간에서 그냥 강제 종료가 되어버리는 것인가요?
도움말을 찾아보니 Terminate 함수가 호출되면 바로 종료가 된다.. 라고 되어있는것 같아서..
정말 그렇게 된다면 루프 중간에 변수 부분들이 미처 못바뀌거나 할 수도 있을것 같아서요..
이거 하나 답변 부탁드리고요..
2. 쓰레드 Execute()부분에서 while(!Terminated) 이런 부분이 없고 그냥 함수 하나만 달랑 호출한다면..
그 함수를 빠져나와서 Execute() 함수도 덩달아 빠져나올텐데.. 그렇게 되면 빠져나온 부분에서도
tempThread->Terminate();
delete tempThread;
이와같은 루틴을 처리해줘야하나요? 아니면 쓰레드가 자기 스스로 종료되면 스스로 삭제를 하는것인가요?
답변 꼭 부탁드리겠습니다.. (__)
|