안녕하세요! 좋은 강의 감사합니다. 다름이 아니라 Thread편과 Runnable편에서 나도코딩님이 쓰신 코드를 그대로 써서 실행을 했는데요. Thread가 동시에 실행되지 않고 사장 청소가 다 실행되고 나서 직원 청소가 진행이 됩니다. Thread가 동시에 실행되지 않는 이유를 스스로 찾지는 못했습니다. 혹시 제가 쓰고 있는 컴퓨터가 성능이 안 좋은 것도 영향이 있나요? 실행을 누르면 7초에서 10초 뒤에 실행이 완료됩니다. 답변해주시면 감사하겠습니다. 좋은 하루 되세요! (밑에 실행 결과 첨부하겠습니다.) 결과: -- 사장 청소 시작 -- (사장) 1번방 청소 중 (사장) 3번방 청소 중 (사장) 5번방 청소 중 (사장) 7번방 청소 중 (사장) 9번방 청소 중 --사장 청소 끝 -- -- 직원 청소 시작 (Thread) -- (직원) 2번방 청소 중 (Thread) (직원) 4번방 청소 중 (Thread) (직원) 6번방 청소 중 (Thread) (직원) 8번방 청소 중 (Thread) (직원) 10번방 청소 중 (Thread) --직원 청소 끝 -- (Thread)
'애플리케이션을 실행할 때 커넥션 풀을 채울 때 까지 마냥 대기하고 있다면 애플리케이션 실행 시간이 늦어진다. 따라서 이렇게 별도의 쓰레드를 사용한다'라고 설명하셨는데 이 부분이 잘 이해가 되지 않네요... 별도의 스레드를 어떻게 사용하길래 커넥션풀을 채울 때 어플리케이션에 실행 시간에 영향을 주지 않게 되는 건지 다시 한번 설명부탁드립니다.
32:55초 28째줄 (jobtimer.cpp 궁금한게 있습니다.) 28번째 줄에 WRITE_LOCK 하기전에 중괄호를 쳤는데 어떤 상황에 의해 LOCK 잡은 곳(괄호)을 지나서 그 괄호 밖의 for문이 실행될 수 있다는 말인가요? 그래서 _distributing 으로 막는거라 이해 하면 되는건가요? 괄호가 없음 상관이 없을까요?
강사님 안녕하세요, 좋은 강의를 잘듣고 있습니다. 스레드 관련하여 궁금한점이 생겨 질문드립니다. 1. 스레드가 서로 데드락 현상으로 꼬이지 않는다는 전제하에, 스레드는 많으면 많을 수록 좋은게 아닌가요? 2. 만약 많을수록 단점이 있다면, 어떤 단점이 있고, 몇개까지 만들어야 적당한 스레드 개수 일가요?