2014-11-25 2 views
0

동시에 2 작업을 수행하고 싶습니다. 그 때문에 나는 그것을 위해 fork() 함수를 사용하고있다. 예를 들어 메뉴 ıtems에 액세스하고 배경에서 무언가를 다운로드하고 싶습니다. 이제 디스플레이를 사용하여 다운로드 진행률 표시 줄과 메뉴 항목 모두를 표시합니다.C에서 백그라운드로 작업을 보냅니다. C에서

백그라운드에서 다운로드 진행 중에 메뉴 항목에 액세스해야합니다.

다운로드 작업은 메뉴뿐만 아니라 디스플레이에 대한 액세스를 요구합니다. 지금은 세마포어로 표시 할 수요에 액세스하기 위해 다운로드 작업을 피할 수 있습니까? (가능한 경우) 어떻게 할 수 있습니까?

+5

'fork'를 사용하면 새로운 프로세스를 만들고 두 프로세스는 [프로세스 간 통신 (IPC)] 없이는 서로 액세스 할 수 없습니다. (https://en.wikipedia.org/wiki/프로세스 간 통신). 그러나 [* threads *] (https://en.wikipedia.org/wiki/Thread_%28computing%29)를 사용하면 두 스레드가 모두 메모리를 공유하므로 스레드간에 데이터를 더 쉽게 공유 할 수 있습니다. –

답변

0

비동기식 (비 차단 형) I/O에 대한 읽기. fork()을 사용하지 마십시오.이 프로세스는 사용자가 원하거나 필요로하지 않는 새로운 프로세스를 제공합니다.