python3 파충류 중 다선정의 장점 총결

일부 동료들은 편집자와python에서 다중 스레드를 사용하는 원리에 대한 문제를 토론하고python 다중 스레드의 폐단에 관한 문제를 이야기했다. 이 점은 사용하는 과정에서 느낄 수 있을 것이다.그리고 앞서 말한 GIL도python 다중 스레드에 대한 제한이다.그럼, 우리는 왜 또 다선정을 써야 합니까?물론 다중 노드의 장점은 그 자체의 부족한 점을 덮어버렸기 때문에python 다중 노드를 배우는 자신감을 강화합시다.
요약하면 다중 루틴 프로그래밍을 사용하는 데는 다음과 같은 몇 가지 장점이 있다.
프로세스 간에 메모리를 공유할 수 없지만 스레드 간에 메모리를 공유하는 것은 매우 쉽다.
운영체제는 프로세스를 만들 때 이 프로세스에 시스템 자원을 재분배해야 하지만 라인을 만드는 대가는 훨씬 적다.따라서 다중 루틴을 사용하여 다중 임무를 수행하는 것이 다중 프로세스를 사용하는 것보다 효율이 높다.
Python 언어는 단순히 기본 운영체제의 스케줄링 방식이 아니라 다중 루틴 기능 지원을 내장하여 Python의 다중 루틴 프로그래밍을 간소화시켰다.
threading 모듈
일반 작성 방법

import threading
import time
def run(n):
  print("task", n)
  time.sleep(1)
  print('2s')
  time.sleep(1)
  print('1s')
  time.sleep(1)
  print('0s')
  time.sleep(1)
if __name__ == '__main__':
  t1 = threading.Thread(target=run, args=("t1",))
  t2 = threading.Thread(target=run, args=("t2",))
  t1.start()
  t2.start()
----------------------------------
>>> task t1
>>> task t2
>>> 2s
>>> 2s
>>> 1s
>>> 1s
>>> 0s
>>> 0s
수호 스레드
다음 예를 들어 setDaemon(True)을 사용하여 모든 하위 라인을 메인 라인의 수호 라인으로 만들었기 때문에 메인 프로세스가 끝나면 하위 라인도 끝납니다.그래서 메인 라인이 끝나면 전체 프로그램이 종료됩니다.

import threading
import time
def run(n):
  print("task", n)
  time.sleep(1)    # 1s
  print('3')
  time.sleep(1)
  print('2')
  time.sleep(1)
  print('1')
if __name__ == '__main__':
  t = threading.Thread(target=run, args=("t1",))
  t.setDaemon(True)  # , start() 
  t.start()
  print("end")
----------------------------------
>>> task t1
>>> end
수호 라인을 설정한 후, 주 라인이 끝날 때, 하위 라인도 즉시 끝나고, 더 이상 실행하지 않는다는 것을 알 수 있습니다.
python 다중 스레드 인스턴스 코드:
스레드 1개:

Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/2.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/3.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/4.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/5.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/6.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/7.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/8.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/9.html 
Done, Time cost: 8.182249069213867
2개의 스레드 시간:

Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/2.html 
Current Thread Name Thread-2, Url: http://www.pythontab.com/html/pythonjichu/3.html 
Current Thread Name Thread-2, Url: http://www.pythontab.com/html/pythonjichu/4.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/5.html 
Current Thread Name Thread-2, Url: http://www.pythontab.com/html/pythonjichu/6.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/7.html 
Current Thread Name Thread-2, Url: http://www.pythontab.com/html/pythonjichu/8.html 
Current Thread Name Thread-1, Url: http://www.pythontab.com/html/pythonjichu/9.html 
Done, Time cost: 4.0987958908081055
이는python3파충류 중 다선정의 장점에 대해 정리한 글입니다. 더 많은python3파충류 중 다선정의 장점에 대해 어떤 내용이 있는지 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기