c 프로그래밍 멀티스레드 10개써서 하는중입니다
그런데 스레드마다 랜덤 sleep값으로 2000,4000,6000 이렇게 세 값을 줬는데
콘솔로 처리되는거 보면 10개 출력물이 쭉 떴다가 대기하다가 또 10개 쭉 뜨다가 이렇게 결과가 출력됩니다.
멀티스레드면 각가 2초 4초 6초 후에 개별적으로 출력되는거 아닌가요??
스레드 진짜 모르겠습니다 필요하시면 코드도 올려드릴테니 제발 왜이런 현상 발생하는지좀 알려주세요 ㅠㅠㅠ
c 프로그래밍 멀티스레드 10개써서 하는중입니다
그런데 스레드마다 랜덤 sleep값으로 2000,4000,6000 이렇게 세 값을 줬는데
콘솔로 처리되는거 보면 10개 출력물이 쭉 떴다가 대기하다가 또 10개 쭉 뜨다가 이렇게 결과가 출력됩니다.
멀티스레드면 각가 2초 4초 6초 후에 개별적으로 출력되는거 아닌가요??
스레드 진짜 모르겠습니다 필요하시면 코드도 올려드릴테니 제발 왜이런 현상 발생하는지좀 알려주세요 ㅠㅠㅠ
멀록
스레드 개시러
혹시 랜덤이 제대로 안먹혀서 10개 다 같은값이 들어갔거나? - dc App
나도 최근에 그랬었는데 ㅋ c++로 했는데 thread.join하는 부분 로직을 잘못짰었음
스래드 비동기로때려
공유 변수로 처리하는 부분이 많아서 Critical Section으로 동기화 해줘야됩니다 비동기하면 난리나요 ㅠㅠ
물론 sleep 부분은 Section 밖에다 넣었습니다
해결했습니다~~ 멀티스레드에 rand()를 사용하면 이게 동일 시드로 rand값을 받아와서 10개 스레드가 모두 같은 랜덤값을 뽑아내더라구요 ㅎㅎ 스레드마다 시드값 모두 다르게 설정해줘서 sleep문제 해결했습니다 아 기모띠