안녕하세요
pthread로 쓰레드 3개를 만들어서
각 쓰레드는 세마포어를 받으면 간단한 똑같은 작업을 반복하도록 코드를 구현하였습니다.
똑같은 작업이니 항상 같은 연산시간이 나올 것이라고 예상되었는데
한번씩 연산시간이 터무니 없이 증가하는 현상이 발생되었습니다.
어떤 경우에 이런 현상이 발생하는 것인지 궁금합니다.
왜 같아요 당연히 다르지 무조건 1번씩 번갈아가면서 실행되는것도 아니고
CPU 스케쥴링에 따라 특정시간 동안에는 1번 Thread, 2번 Thread가 계속 잡고 실행될수도 있는거고
lock을 누가 잡느냐에 따라서도 다를거고..
컴퓨터가 우리 사람처럼 생각 하겠거니 생각하지 마시고 우리가 컴퓨터처럼 생각하려고 노력해보세요
세마포어를 기다리는데 시간이 많이 소요되면 연산시간이
세마포어를 기다리는데 시간이 많이 소요되면 연산시간이 증가되겠죠. 코드를 올려 보세요.
goddevelop
왜 같아요 당연히 다르지 무조건 1번씩 번갈아가면서 실행되는것도 아니고
CPU 스케쥴링에 따라 특정시간 동안에는 1번 Thread, 2번 Thread가 계속 잡고 실행될수도 있는거고
lock을 누가 잡느냐에 따라서도 다를거고..
컴퓨터가 우리 사람처럼 생각 하겠거니 생각하지 마시고 우리가 컴퓨터처럼 생각하려고 노력해보세요
댓글 달기