안녕하세요...
지금 제가 처음으로 Multi thread를 이용한 프로그램을 하고 있는데요..
한 프로세스에 여러개의 thread를 사용하는데요..
여러개의 thread 중 몇개의 thread가 멈춰버리면 (예를 들어 DB에 insert할 시 Lock이 걸린경우 등...)
프로세스 전체가 멈춰버리는 현상이 있을 수 있나요????
제가 알기로는 thread는 완전 별개로 동작하는걸로 알고 있는데?????
고수님들 답변 좀 해주세용...
글고 thread safe하게 프로그램한다는 말이 무슨 뜻인가요??? (누가 언뜻 얘기를 해서요....
그럼 좋은 하루되세용...
네.. 쓰레드 자체만으로는 별개인 것처럼 동작합니다. (프로세스 내의 자원을 공유하고, 프로세스에 할당된 CPU 처리 시간을 나누어 쓰는 것이니까, 완전히 별개라고 볼 수는 없지요)
하지만, 멀티 쓰레드 프로그램에서 진행 상황을 표시하기 위해서 메인 폼에 있는 라벨이라던가 프로그레스 바 같은 것을 쓰레드에서 접근하게 되면, 님이 말씀하신 것처럼 프로세스 전체가 멈춰버리는 경우가 많습니다. 아마도 이런 문제가 아닐런지요?
이 문제를 해결하기 위해서는 메인 폼의 속성을 접근하는 부분을 따로 프로시저로 만드로 Synchronize 시키면 크게 문제될 것은 없습니다.
그럼, 즐프~