노드에 멀티스레딩 관련 제약이 있다기보다는....노드 자체가 일단 기본적으로(이벤트룹) 싱글스레드로 돌아가고, 특정 라이브러리들(파일 읽기 쓰기 이런거)이 따로 스레드파서 돌아가는 구조임. 그래서 express서버에서 라우팅 주소에 5초 걸리는 작업 while문으로 걸어두고 돌리면 크롬탭 2개로 동시 접속할 때 1개씩밖에 처리 못함.
그리고 노드에서는 스레드, 워커스레드 이런 거 잘 안 쓰고 cpu집약적인 거 하려면 걍 cluster로 멀티프로세싱 구현해서 쓴다고 배웠음. 근데 나도 웹에서 cpu작업을 안해봐서 현업이랑 연관지어서 설명하긴 좀 애매하넹. 근데 이런 식으로만 말해도 면접관은 만족할 듯???
memory compartment의 차이인데 솔찍히 현역새끼들도 잘 구분안함. 실제로 걍 똑같은 개념이라고 보는 입장도 있고. 걍 존나 많이 나오는 면접질문에 최소한의 준비는 했냐 테스트한거임
프로세스랑 스레드를 똑같은 개념이라고 보는건 도대체 뭔 말도안되는 소리냐
https://www.geeksforgeeks.org/thread-in-operating-system/
스레드랑 프로세스 차이는 알아도, 저렇게 물어보니까 뇌정지왔는데 그래서 대답 어떻게 해야 모범답안임
멀티프로세싱의 정확한 의미가 뭐냐 근데
멀티스레드는 스레드끼리 힙을 공유하니까 critical section을 다룰때 조심해야하고 멀티프로세스는 대신 운영체제가 프로세스를 관리하기 위해 사용하는 자료구조에 공간이 더 많이 들고 context switch 시의 비용도 큼 운영체제 들으면 다 배우잖아
윗 댓글에 더해서, 전자는 프로세스 하나에서 처리하니까 임계영역 코딩을 잘 해야 하고, 후자는 프로세스간 병렬처리한 데이터를 취합하는데 메모리 공유나 메세지큐 같은걸 써야겠지
추가해서, 멀티쓰레딩의 경우 어떤 쓰레드에서 심각한 에러가 발생하게 되면 프로세스에 전체적으로 영향을 줄 수 있는 반면, 멀티프로세싱의 경우, 한 프로세스에서 에러가 발생해서 죽었다고 해도 다른 프로세스에 영향을 주는 경우가 거의 없음.
자원 공유의 차이와 스케쥴링 오버헤드
운영체제에서 공유 쓰레드 배울때 졸앗노
메모리랑 PCB 공유하냐 안하냐 차이잖음
멀티프로세스로 띄우면 포트 번호 배분 잘해주고, 멀티스레드면 힙 메모리 공유 되는거 주의하고 ㅇㅅㅇ - dc App
멀티프로세스는 싱글스레드로 짜고 여러개를 띄울경우 복잡한 멀티스레드 동기화를 하지 읺아도 되지만 프로세스간 자원공유하려면 시스템 자원을 써야하고 컨텍스트 스위칭 비용부터 메모리도 좀 더 먹고 자원을 좀더 사용하지
글쓴이가 궁금한 건 댓글 내용이 아닌 거 같은데...약간 현업이랑 연관지어서 답변해줘야 하는거 아닌가??
가령 멀티프로세싱 같은 경우는 cpu집약적인 작업을 할 때 해야하고. 멀티스레드같은 경우는 io작업. 이런 식으로만 답변해도 면접관은 만족할 거 같고...어지간한 수준에서는 프레임워크에서 io를 멀티스레드로 알아서 잘 처리해줄거니까 따로 신경 안써도 될 거고
일반 웹에서는 cpu집약적인 작업 잘 안하니까 본인이 생각하는 특정 예제 알려주면 될 거 같음. 웹에서 cpu집약적인 작업이 암호 복호화이나 회원 소수만 사용하는 이미지. 차트 생성하는데 데이터프레임 계산하는 경우라던지..말을 잘 하믄 되지않을까??
ㅂㅅ언어 파이썬에선 맞는말인데 일반적으론 틀린말 아님? 멀티스레드도 cpu집약적인 작업하는데 전혀 문제 없는데
내가 알기로는 노드에서도 cpu집약적인 건 클러스터만들어서 하는거로 알고있는데..그게 멀티프로세싱이고. 오랜만에 보는거라 다시 좀 읽어볼게
그럼 노드도 멀티스레딩 관련해서 제약이 잇나봄 파이썬은 GIL이고 노드는 안해봐서 모르겠네
노드에 멀티스레딩 관련 제약이 있다기보다는....노드 자체가 일단 기본적으로(이벤트룹) 싱글스레드로 돌아가고, 특정 라이브러리들(파일 읽기 쓰기 이런거)이 따로 스레드파서 돌아가는 구조임. 그래서 express서버에서 라우팅 주소에 5초 걸리는 작업 while문으로 걸어두고 돌리면 크롬탭 2개로 동시 접속할 때 1개씩밖에 처리 못함. 그리고 노드에서는 스레드, 워커스레드 이런 거 잘 안 쓰고 cpu집약적인 거 하려면 걍 cluster로 멀티프로세싱 구현해서 쓴다고 배웠음. 근데 나도 웹에서 cpu작업을 안해봐서 현업이랑 연관지어서 설명하긴 좀 애매하넹. 근데 이런 식으로만 말해도 면접관은 만족할 듯???