어제 내가 read somewhere that NSTask isn't thread safe이고 NSThread 내에서 NSTask를 실행 중이며 지금까지 스레딩 문제가 발생하지 않았기 때문에 저에게 많은 불편을 겪습니다.NSTask를 주 스레드 외부에서 안전하게 사용할 수 있습니까?
내 코드는 방지하기 위해, 나는 NSTask 메인 스레드/정지 코드를 시작으로 이동 고려 중이 야 다음, NSTask 만 메인 스레드 내에서 사용하도록되어있는 경우이
A: main thread -> B: worker thread -> C: worker task
C: The worker task is a commandline program.
B: The worker thread can start/stop the worker task and send it commands.
A: The main thread can send commands to the worker thread.
과 같이 구성되어 있습니다 가능한 스레딩 문제.
NSTask를 주 스레드 외부에서 사용할 수 있습니까?
그리고 그렇지 않다면 NSTask의 스레딩 문제 일 수 있습니까?
예, 문제를 일으킬 수있는 죽은 스레드에게 알림. 그 코코아 데스 페이지는 나를 의심스럽게 만들었 기 때문에 그것이 분명하지 않은 것이 분명하지 않다는 것을 확신해야했습니다. 백그라운드에서 읽을 필요가 없도록 fileHandleWithNullDevice를 사용하고 있습니다. 대신 두 객체간에 명령을 보낼 수 있도록 양방향 방식으로 분산 객체를 사용하고 있습니다. 작업이 오래 실행됩니다. 가장 훌륭한 답변을 해주셔서 감사합니다. – neoneye