jin.log
로그인
jin.log
로그인
Lock 기초
jinsuk
·
2023년 10월 26일
팔로우
0
c샵서버
0
임계영역
동시다발적으로 쓰레드들이 접근하면 문제가 되는 코드 영역
해결하기 위한 방법중 하나가 인터락
또다른 방법
이런 경우 내가 여기서 여기까지 끝날때까지는 다른 애들이 안 건드린다는 걸 보장하는 것
쌍을 잘 맞춰줘야지 안그러면?
데드락
상황 발생
다른 쓰레드가 하염없이 기다리는상황
데드락이 발생할 확률을 조금이라도 줄일 수 있는 유용한방법
데드락
서로 실행순서는 달리 해주면 쉽게 해결가능
아무리 잘 구현한다 하더라도 데드락 상황을 완전히 막을 수는 없다.
실제로 발생한 다음에 고치는게 쉽다.
멀티스레드 프로그래밍에서 락이 비중이 60~70% 차지할 정도로 굉장히 중요하다.
언어마다 프레임워크마다 조금씩 구현 방법이 다르다.
스핀 락
무조건 기다리는 메타
cpu 점유율이 확 튄다.
무한루프를 게쏙 돌면서 기다리는 작업때문(정확히는 비었냐비었냐 계쏙 체크함)
그냥 포기 하는 경우
자기 소유권을 넘겨주고 다른 스레드를 실행시키러 빙의하러 돌아다니는 작업이 부하가 엄청 크다(컨텍스트 스위칭)
소유권 양도하는거 까지는 비슷하지만 커널(운영체제)한테 락이 빌경우 이벤트를 발생시켜달라고 부탁
jinsuk
공부기록용
팔로우
이전 포스트
전방선언
다음 포스트
함수포인터
0개의 댓글
댓글 작성