Game Server (28) 썸네일형 리스트형 [C++/서버/컴퓨터구조] 캐시와 CPU 파이프라인 보호되어 있는 글입니다. [C++/서버] Future 보호되어 있는 글입니다. [C++/서버] Condition Variable 보호되어 있는 글입니다. [C++/서버] Event 결론 : 이벤트라는 커널 오브젝트를 이용해서, 만약 스레드가 함수를 진행하기 위해서 어떤 상황이 필요한 경우 이 상황이 발생할 때까지 기다리게 해서 CPU의 사용량을 낮출 수 있는 프로그래밍 기법이다. 화장실 문이 열릴 때까지 대기 일단 자리로, 그리고 나중에 다시 랜덤하게 돌아오기 화장실 문 앞에서 대기할 직원 하나 두고 난 일자리로 돌아간 뒤, 일이 끝나면 직원이 나한테 알려주기 이제 마지막 방식을 알아보자. 직원은 사실 커널 오브젝트이다. 커널 오브젝트는 이 락이 풀리는 '이벤트'가 끝날 때까지 대기를 했다가 이 이벤트가 끝난 경우 그 자원을 기다리던 프로그램에 알려주는 식이다. 이벤트는 정말 간단하다. 화장실 문이 열린다와 닫힌다 이 두 상황이 있는 것이다. 화장실 안에는 사람이 있고 밖에는 기다.. [C++/서버] Sleep 보호되어 있는 글입니다. [C++/서버] Spinlock 보호되어 있는 글입니다. [C++/서버] Lock-2 락의 경우 서버 개발을 할 때 너무 필수적이고, 면접에서 자주 나오는 경우다. 그렇기 때문에 다양한 방식으로 Lock을 구현하는 연습은 꽤나 중요하다. 즉 우리는 이 화장실의 좌물쇠를 만드는 연습을 충실히 해보자. 내가 직장에서 일하고 있다가 직장 화장실을 갔을 때 누군가 들어갔다. 화장실 앞에서 대기하는 방법은 3가지로 요약할 수 있다. 무작정 기다린다. - 화장실 내에서 손 씻는 소리가 난단건 곧 나온다는 것이다. 그리고 자기 일터와 화장실을 왔다갔다 하는 시간은 굉장히 오래 걸리니까 그냥 계속 기다리는 방식이다. 이 방식을 컴퓨터로 하면 스핀락이라고 한다. (계속 루프를 돌면서 lock이 풀렸나 확인하는 것이다. 일단 일터로, 화장실은 다시 돌아온다. - 먼저 일자리로 돌아가서 일을 하다가 3분 정.. [C++/서버] DeadLock 보호되어 있는 글입니다. 이전 1 2 3 4 다음