본문 바로가기
python

9. python, 스레드(thread)

by 장인이 2021. 1. 13.

  c에서의 스레드는 병렬성을 의미합니다. 하지만 파이썬에서의 스레드는 동시성을 의미합니다. 따라서 속도에서의 향상을 기대하기는 어렵습니다.

  그 이유는 바로 GIL(Global Interpreter Lock) 때문입니다. 예를 들어서 한 데이터를 가지고 3가지 방법으로 진행시켜 본다고 가정해 봅시다. 동시에 3곳에서 한 데이터를 접근하려고 하면 오류가 발생할 수 있기 때문에, GIL에서 이를 막고, 순차적으로 접근할 수 있도록 분배해주는 역할을 합니다. 즉, GIL이 한번에 한 스레드만 실행시키도록 하는 것이며, 속도를 높이는 기능을 하기에는 무리가 있습니다.

 

ex)

from threading import Tread

class Test(Tread):
    def __init__(self):
        super(Test, self).__init()__() # Thread 상속받을 경우, initialize 필요
       
    def run() # run 함수를 오버로딩 해주어야 함
        pass

댓글