0

가능한 중복 :
Why should I use a thread vs using a process?장기 실행 작업, 다른 스레드 또는 다른 프로세스에서 실행해야합니까?

나는 그들이 무겁게 CPU와 메모리를 사용, 일부 장기 실행 작업을해야합니다. 다른 스레드 또는 다른 프로세스에서 실행해야합니까? 각 옵션의 이점은 무엇입니까?

+2

"장기 실행"이란 의미에 따라 ... 10 초, 20 분, 5 일? – Kiril

+0

@ 리릭 몇 분. – CuiPengFei

답변

1

당신이하려는 작업에 따라 다릅니다.

Why should I use a thread vs. using a process?에 언급 된 것 이외에, 해당 스레드가 포함하고있는 프로세스의 메모리를 공유하고 싶습니다. 반면에 프로세스는 메모리를 공유하지 않습니다. 각 프로세스는 스택에 자체 메모리 공간을 가지고 있습니다.

동일한 데이터 (일부 작업)를 작업하려는 경우 스레드로 작업하는 것이 좋습니다. 각 스레드가 데이터 덩어리에서 작업하게하십시오.

작업이 완전히 관련이없는 경우 프로세스를 사용하십시오. 나는 이것이 다소 모호하다는 것을 안다; 하지만 데이터를 공유하지 않고 연산을 직렬화하지 않는다면 프로세스를 사용할 수 있습니다.

일반적으로 하나의 응용 프로그램 (프로세스)이 여러 스레드를 생성합니다. 여러 응용 프로그램이있는 경우 각 응용 프로그램은 프로세스이고 자체 주소 공간이 있습니다.

관련 문제