리눅스에서 ps 나 top 쳐보면 프로세스가 쭉 뜨잖아요. 근데 어떤 프로그램은 스레드를 여러 개 쓴다고 하고, 자바 같은 데서도 멀티스레드 얘기가 나오고 해서 헷갈립니다.
제가 대충 아는 건 프로세스는 실행 중인 프로그램 하나고, 스레드는 그 안에서 도는 작은 작업 단위 정도인데요, 이게 맞나요? 근데 왜 굳이 스레드로 나눠서 쓰는지, 그냥 프로세스 여러 개 띄우면 안 되는 건지 잘 이해가 안 돼요.
특히 메모리를 공유하냐 안 하냐가 중요하다고 들었는데, 스레드끼리는 메모리를 같이 쓰고 프로세스는 따로 쓴다는 게 정확히 무슨 뜻인지 잘 모르겠습니다. 그러면 스레드가 훨씬 가볍고 좋은 거 아닌가요? 근데 왜 프로세스로 분리하는 경우도 있는 건지, 실무에서 이 둘을 어떻게 나눠 생각하면 되는지 초보도 이해되게 설명해 주시면 정말 감사하겠습니다.