동기화(synchronization), 경쟁 조건(race condition), 임계 영역(critical section)을 자세하게 설명합니다! 헷갈리시는 분들 꼭 보세요!

  Рет қаралды 10,412

쉬운코드

쉬운코드

Күн бұрын

Пікірлер: 47
@moonkyukim6204
@moonkyukim6204 Жыл бұрын
출퇴근때마다 계속 봅니다 ! 다른 개발 영상들은 집중이 잘되지않는데 쉬코님꺼는 정말 집중이 잘되네요 !
@ezcd
@ezcd Жыл бұрын
오~ 다행입니다 😄 안그래도 보시는 분들이 집중력 잃지 않을 수 있도록 영상 편집할 때도 신경을 많이 쓰고 있거든요~ 좋은 피드백 감사합니다~! :)
@anajouryo
@anajouryo Жыл бұрын
쉬운코드 폼 미쳤다 감사해요 교수님 저도 언젠간 유튜바님처럼 멋진 강의 만들고싶네요
@ezcd
@ezcd Жыл бұрын
성우 교수님께서도 언젠가 미친 폼을 보여주실 날이 올 거예요 👍
@임승민-m1c
@임승민-m1c 2 жыл бұрын
영상 정주행중입니다. 너무 유익해요
@ezcd
@ezcd 2 жыл бұрын
감사합니다 ㅠㅠ 너무 유익하다고 해주시니 저도 많이 뿌듯하네요 ✌ㅎㅎ
@베베-j5z
@베베-j5z Жыл бұрын
좋은강의 감사합니다! 설명이 완전 좋아요ㅎㅎ
@ezcd
@ezcd Жыл бұрын
헤헤 좋게 봐주셔서 감사합니다~! 앞으로도 자주 놀러와 주세요 :)
@SeokJunKim
@SeokJunKim 6 ай бұрын
설명을 정말 잘하시네요!! 공부에 많은 도움이 되었습니다ㅎㅎ
@jhk3069
@jhk3069 Жыл бұрын
좋아요 먼저 누르고 시청합니다!!
@ezcd
@ezcd Жыл бұрын
선좋아요 후시청은 사랑입니다 ❤
@sooruheo7520
@sooruheo7520 Жыл бұрын
진짜 최고입니다..
@_3_615
@_3_615 Жыл бұрын
매일 시간 내서 듣고 있는 데 내용이 너무 좋아요
@dev-cookie
@dev-cookie Жыл бұрын
안녕하세요. 저는 기초컴퓨터과학을 공부하고 있는 취준생입니다. 궁금한 내용을 찾다보면 항상 쉬운코드님의 채널에 도착하게 되더라구요. 강의 내용이 너무 알차고 이해가 잘 됩니다. 학습목적으로 출처를 밝히고 블로그에 강의 내용을 정리하고 싶은데 괜찮으실까요?
@ezcd
@ezcd Жыл бұрын
영상들을 좋게 봐주셔서 감사해요 :) 그럼요~!! 출처만 잘 밝혀주시면 채널 홍보도 되고 좋습니다 :)
@dev-cookie
@dev-cookie Жыл бұрын
@@ezcd 배려해주셔서 감사합니다! 이렇게 좋은 양질의 자료를 올려주시는데 공부도할겸 적극 홍보하도록 하겠습니다 ㅎㅎㅎㅎ
@ezcd
@ezcd Жыл бұрын
크~!! 정말 감사합니다 😍
@rationality9575
@rationality9575 Жыл бұрын
좋은 강의 감사합니다! 정리를 잘해주셔서 직관적으로 이해되어요
@권타몽
@권타몽 8 ай бұрын
진쨔 대단하십니다... 감동😢
@갈가마구
@갈가마구 2 жыл бұрын
동기화 동기화 참 여러 군데서 귀 아프게 들었는데... 이걸 어찌 해결하게 되는지 ... 감사합니다.
@ezcd
@ezcd 2 жыл бұрын
동기화가 처음엔 이해하기가 좀 어려울 수 있어요 ㅠ 하지만 조금만 익숙해지면 금방 적응하실 수 있을거에요 :)
@loygg2
@loygg2 2 жыл бұрын
좋은 강의 감사합니다! 이해하기 쉽게 강의해주셔서 듣는내내 끄덕 거리면서 봤습니다 ㅎㅎ
@ezcd
@ezcd 2 жыл бұрын
크 칭찬 댓글 감사합니다~!! 쉽게 설명하려고 항상 노력하는데 이런 댓글을 보면 노력이 결과로 이어지고 있는 것 같아서 마음이 뿌듯해지고 큰 힘이 됩니다~! 고맙습니다 :)
@ghettibullzza2885
@ghettibullzza2885 Жыл бұрын
좋아요를 안누를수 없습니다
@ezcd
@ezcd Жыл бұрын
헤헤 감사합니다 :) 큰 힘이 됩니다 👍
@weyoung1346
@weyoung1346 2 жыл бұрын
안녕하세요! 강의 잘 들었습니다. 제가 운영체제 파트가 부실한데 프로세스 강의부터 아주 쉽게 공부하고 있습니다! 명확하고 천천히 설명해 주셔서 이해하기에 너무 좋아요! 다음 해결에 대한 강의를 듣기 전 혼자 생각하다가 임계 영역에 대해 여쭤보고 싶은 부분이 생겼습니다. 임계 영역을 코드적인 영역으로 이해하였는데요, 이 부분을 db의 임의의 테이블의 특정 row 처럼 여러 thread가 조작을 할 수 있는 영역 혹은 힙이나 메소드 영역에 저장된 클래스 중에 상태값을 갖는, 전역 변수를 갖는 영역으로 파악하였는데 맞을까요?? 위 테이블 row나 전역 변수 외에 경쟁 조건이 생길 수 있는 좋은 예시가 있을까요?? 또한 지역 변수는 thread 별 스택에 저장되는 값이라 경쟁 조건과 무관하다고 파악하였는데 맞을까요??.. 앞으로도 많은 강의 부탁드립니다ㅠ 정말 너무 잘 듣고 있습니다!! 감사합니다 ㅎㅎ
@ezcd
@ezcd 2 жыл бұрын
크~! 영상을 유익하게 봐주셔서 감사합니다 :) 도움이 된 것 같아서 저도 많이 뿌듯하네요 👍 탐구하시는 모습 멋지십니다!!! 질문주신 내용에 간단히 답변드리면, 같은 프로세스에 속하는 스레드들은 메모리 영역을 공유하는데 특히 힙 영역을 공유하기 때문에 힙 영역에 있는 데이터를 여러 스레드들이 동시에 접근해서 읽기/쓰기를 하려고 하면 데이터 값이 예상과 다르게 바뀔 수 있습니다 이를 막기 위해서 임계 영역(critical section)을 만들어서 그 안에서는 데이터에 대한 접근을 한번에 하나의 스레드만 가능하도록 하게 하는 거죠 (mutual exclusion) 그러므로 임계 영역 안에는 프로그래밍 언어로 작성된 코드가 있고, 실제로 그 코드가 실행되면, 해당 임계 영역에는 한번에 하나의 스레드만 진입 가능하며, 해당 스레드는 임계 영역 안의 코드를 실행함으로써 힙 영역에 있는 데이터에 접근을 하게 된다고 보시면 되겠습니다 참고로 전역 변수라는 표현은 조금은 애매할 수 있습니다 전역 변수의 의미가 어떠한 영역에서도 접근 가능한 변수라는 의미인데, 꼭 전역 변수가 아니더라도 여러 스레드가 같은 데이터를 공유할 수 있으니까요 경쟁 조건은 서로 다른 프로세스에서도 발생할 수 있습니다 서로 다른 프로세스의 경우에는 기본적으로 메모리 영역을 공유하지 않지만, shared memory 영역을 만들고 여러 프로세스를 해당 메모리 영역에 매칭시키면, 스레드들처럼 프로세스들도 같은 메모리 공간에 접근 가능하기 때문에 이런 경우에는 경쟁 조건(race condition)이 발생할 수 있겠죠 끝으로 말씀하신 것처럼 지역 변수는 함수나 메소드 내에 국한된 변수이기 때문에 경쟁 조건이 발생하지 않습니다 항상 애청해 주셔서 정말 감사해요~!! 답변이 도움이 됐길 바라요 :)
@weyoung1346
@weyoung1346 2 жыл бұрын
@@ezcd 너무 좋은 답변 감사합니다! 이해가 더 확실하게 되었습니다 ㅠㅠ 감사합니다!!
@ezcd
@ezcd 2 жыл бұрын
@@weyoung1346 항상 응원합니다!!! 추석 연휴 곧 시작인데 즐거운 한가위 되세요 :)
@user-dmddnjs9
@user-dmddnjs9 2 жыл бұрын
진짜 최고인거같아요ㅠ 뒤죽박죽 아무것도 안 와닿았는데 여기 15개 강의들으니까 교안봐도 무슨말하는지 알겠고 예제들도 머릿속에 생각나서 이해하기 훨씬 쉬워졌어요 좋은 강의 감사합니다 ㅜㅜ
@ezcd
@ezcd 2 жыл бұрын
크 ㅠㅠ 좋게 봐주셔서 정말 감사합니다 ㅠㅠ 앞으로도 알차고 유익한 내용들로 자주 자주 도움드릴 수 있도록 파이팅 하겠습니다 :) 👍
@hml139
@hml139 2 жыл бұрын
동기화가 중요하다!
@ezcd
@ezcd 2 жыл бұрын
맞습니다! 동기화 정말 중요합니다!
@2023-c9p
@2023-c9p Жыл бұрын
@ezcd
@ezcd Жыл бұрын
😍❤
@joon9613
@joon9613 Жыл бұрын
안녕하세요, 영어권대학에서 공부하다보니 부족한 영어로 인해 개념적인 이해가 제대로 되지 않아서 다시 공부하고 있었는데 정말 이해하기 쉽게 개념들을 이해시켜주셔서 이해가 너무 잘됩니다!! 이런 좋은 컨텐츠들을 만들어주셔서 감사합니다 :)
@ezcd
@ezcd Жыл бұрын
안녕하세요~! 멀리서 공부하시느라 정말 대단하시고 한편으로는 고생도 많으실 것 같아요 ㅠㅠ 우선 항상 힘내셨으면 좋겠구요~! 좋은 댓글과 응원의 마음 남겨주셔서 감사합니다!! 앞으로도 파이팅 해서 조금이라도 공부하시는 데 도움될 수 있도록 할게요 :)
@bum7006
@bum7006 2 жыл бұрын
파이썬에서 cachetools라는 라이브러리로 로컬캐싱을 많이 쓰는 것으로 알고 있어요. 저도 한번 넣은 적 있구요. 헌데 이 cachetools 에서 제공하는 캐시가 thread-safe하게 동작하기 위해서는 cache 선언하면서 parameter에 lock 을 넣어주어야하는데 문서나 예제 코드들에서는 굳이 lock을 넣어주지 않아서 실수 할 여지가 존재하는거같아요. default가 thread-safe하지 않거든요. 이로 인해서 발생할 수 있는 문제점은 캐싱 데이터가 만료되거나 삭제 될 때, 에러가 발생합니다. 특정 스레드가 이미 지운걸 다른 스레드가 이미 지워진걸 지우는 현상이 발생하더라구요 ㅎㅎ 또 캐시 사이즈도 처음 캐시 선언하면서 정해주는데, 캐싱된 아이템을 삭제할 때, 동시성 이슈가 발생하면서 삭제 시 캐시사이즈를 원래대로 늘려줘야하는데 동시성 이슈가 발생하면 캐시 사이즈가 점점 더 줄어들게 됩니다. 각 스레드가 하나씩 지워놓고 카운트를 2 올려주어야하는데 1만 올라가는거죠. 그럼 스레드 수는 그대로인데 캐시사이즈는 점점 줄어들게 되니 더 많은 에러가 발생하게 되는 현상을 경험해본 적 있네요
@ezcd
@ezcd 2 жыл бұрын
와 디폴트가 thread-safe 하지 않았었네요~ 이것도 진짜 동시성의 중요성을 잘 보여주는 사례인거 같아요~! 실무에서 경험하신 부분을 공유해주셔서 감사합니다! 👍 다른 분들도 댓글 보시면 더 도움되실 것 같아요 :) 요 사례도 다음에 소개할 기회가 생길 때 잘 사용할게요ㅎㅎ
@뿡뿡-t2l
@뿡뿡-t2l Жыл бұрын
가슴 깊이 이해할수 있었습니다.
@ezcd
@ezcd Жыл бұрын
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 👍👍👍
@조바이든-r6r
@조바이든-r6r 2 жыл бұрын
영상 하나하나 처음 공부하는데 힘드네요 ㅠ
@ezcd
@ezcd 2 жыл бұрын
ㅠㅠㅠ 제가 더 설명을 쉽게 할 수 있게 얼릉 내공을 더 쌓도록 하겠습니다ㅠㅠ 이해하기 힘드신 부분들 댓글로 남겨주시면 도울 수 있는 부분들은 최대한 도울 수 있도록 해볼게요~
@조바이든-r6r
@조바이든-r6r 2 жыл бұрын
@@ezcd 아닙니다.. 그냥 제가 모자라서인것일뿐.. os는 사실 한기대? 강의 조금 맛보고 말았거든요 근데 웹서버는 http로 간단하게들어가지만 대기업 전공면접이나 게임서버 만들려면 제대로파야겠다 싶어서 공부중인지라.. 터프하지만 참아야겠지요
@ezcd
@ezcd 2 жыл бұрын
@@조바이든-r6r 앗 그러셨군요 ㅠㅠ OS가 조금 어렵긴 합니다 ㅠㅠ 그래도 포기하지 마시구 화이팅이셔요~! 응원합니다~!
@박승호-z1n
@박승호-z1n 8 ай бұрын
레츠 고!!!~
@lightenchant7323
@lightenchant7323 Жыл бұрын
ㄳㄳㄳ
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
대용량 서비스에 자주 쓰이는 레디스에 대해 알아보자 - 김소정 | F-Lab 미니 컨퍼런스
29:57
Process와 Thread의 차이
19:33
널널한 개발자 TV
Рет қаралды 76 М.
이해하면 인생이 바뀌는 TCP 송/수신 원리
32:19
널널한 개발자 TV
Рет қаралды 379 М.
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН