thread3 27. 스레드 동기화 이슈 해결방법 - 본 포스팅을 읽기 전에, 이전 포스팅 26.스레드 동기화를 먼저 읽는 것을 권장합니다. 1. 스레드 동기화 이슈의 원인 # 파이썬 코드입니다. import threading g_count = 0 def thread_main(): global g_count for i in range(10000): g_count = g_count + 1 threads = [] for i in range(50): th = threading.Thread(target=thread_main) threads.append(th) for th in threads: th.start() for th in threads: th.join() print('g_count = ', g_count) 이전 포스팅에서 위의 코드를 이용해 스레드 동기.. 2021. 5. 11. 26. 스레드(Thread) - 동기화(Synchronization) 1. 동기화 이슈란? - 다수의 프로세스 또는 다수의 쓰레드가 하나의 데이터에 대한 동시접근 및 사용으로 인해 발생하는 문제를 의미한다. - 아래의 예시를 참고하자. 한 프로세스 내부에 스레드 A, B, C가 있다. 스레드 A, B, C가 공유하는 example 이라는 변수(= 데이터)가 있다. 스레드 A, B, C는 example의 값을 변경하는 연산을 수행한다. 스레드 A, B, C는 example의 값을 계속해서 변경시키고 동시에 참조하는 과정을 반복하게 된다. 그 결과, 연산 누락이 발생하여 비정상적인 결과값이 나온다. - 이와 같은 현상을 스레드의 동기화 이슈/문제 라고 부른다. 2. 예제 코드를 통한 스레드 동기화 이슈의 이해 a) 예제 코드 # 파이썬 코드입니다. import threadin.. 2021. 5. 11. 24. 스레드란? (thread 개념) 0. 프로세스 부분을 끝낸 기념으로... - 컴퓨터 시스템은 다음과 같이 이루어져 있다. - Windows나 Mac과 같은 시스템 SW 또는 OS를 만드는 사람을 시스템 엔지니어라고 부른다. - 시스템 엔지니어가 만든 함수(api, library, etc)의 사용법을 익히고 응용하는 것이 응용 프로그래머다. - 시스템 엔지니어가 만든 함수를 익히는 대표적인 방법 중 하나가 python이나 java같은 언어를 배우는 것이다. - 좋은 개발자가 되기 위해서는 응용 프로그램의 영역뿐만 아니라 시스템 영역을 아는 것이 핵심이다. - 모든것을 한번에 완벽히 이해하기는 힘들지만, 좋은 개발자가 되기 위한 밑거름을 만들고 있다고 생각하자. 1. Thread 개념 스레드는 다른 이름으로 Light Weight Proc.. 2021. 4. 29. 이전 1 다음