# 멀티 스레딩
하나 개 이상의 스레드 # 과정에 해당
#에는 멀티 스레드 프로그래밍, 프로세스는 메인 스레드가없는 경우
# 그러나 멀티 스레드 프로그래밍, 프로세스는 메인 스레드를 포함한 여러 스레드를 포함
# 동시 프로그램을 달성 할 수 스레드를 사용하여
# 스레드 지원을 많이 Python3 스레딩 모듈
# 수입 스레딩
# python3에서, 스레드는 두 가지 방법으로 만들 수 있습니다
'' '
두 가지 방법 :
① 사용 threading.Thread 실행 기능을 직접 스레드 (스레드를 생성하기 위해 Thread 클래스의 생성자를 호출).
파라미터를 타겟팅 (함수명) 함수 객체를 전달;
인수 파라미터 : 목적 함수의 파라미터로서, 투플을 통과;
다음 단계 :
1 - 실행 쓰레드로 객체를 생성 할 때, 대상 매개 변수는 지정된 함수를 스레드 객체를 생성하기 위해 Thread 클래스의 생성자를 호출
2 - 호출 스레드 객체 별 () 메소드는 스레드를 시작합니다
② 상속 스레드 클래스는 스레드 클래스를 만들 수 있습니다.
다음 단계 :
실행 () 메소드가 실행 스레드라고 있도록 1-- Thread 클래스, 클래스와 재정의 run () 메소드의 서브 클래스 정의는, 메소드 본문의 run () 메소드는 작업을 완료하는 데 스레드 요구를 나타냅니다
2 - 스레드의 서브 클래스의 인스턴스를 생성, 스레드 객체가 만들어집니다
3 - 호출 스레드 객체 별 () 메소드는 스레드를 시작합니다
첫 번째 방법은 함수를 대상 스레드이 간단한 프로그래밍 방법, 직접 포장 실을 만드는 권장 선명을 갖는 논리 구조
''
# 메인 쓰레드의 이름을 얻는 방법
# threading.current_thread (). getName ()
# 쓰레드 스케줄링
# 시작 방법은 스레드를 시작합니다
# 방법 대기중인 스레드에 가입
수입 스레딩
수입 시간
데프 thread_run (이름) :
time.sleep (2)
인쇄 ( "%의 첫 번째 스레드!"% 이름)
T1 = threading.Thread (목표 = thread_run, 인수 = ( 'peiyanan'))
T2 = threading.Thread (목표 = thread_run, 인수 = ( 'tanyongling'))
t1.start ()
t2.start ()
t1.setName ( '아이 thread 1') 스레드 이름의 # 설정 이름
인쇄 (t1.name) # 인쇄 스레드 이름
인쇄 (t1.getName ()) # 가져 오기 스레드 이름
실행중인 스레드가 거짓 표시됩니다 실행 여부를 결정하기위한 (t1.is_alive ()) # 가능한지 () 메소드를 인쇄
# () T1.join
#의 t2.join ()
# 인쇄 ( '메인 쓰레드가 실행!')
# ------------------------------------------------- ------
# 어떻게 우아한 사용하는 멀티 스레딩
# 번호는 생성 스레드 제어 루프가 사용될 수있다
# 메뉴 = [ '수학', '영어', '언어', '지리', '역사']
메뉴 # m의 경우 :
# t = threading.Thread (목표 = thread_run, 인수 = (m, 2))
# t.start ()
# 쓰레드 스케줄링
하나 개의 스레드를 허용하지 않습니다 # 운영 시스템은 CPU에 의해 점령되었다
# 스레드 생명주기
'' '
네 가지 상태 :
① 스레드가 초기화 되었으나, 시작되지 않았다 새로운 상태 수단
상태를 실행하면 정상적인 실행 스레드를 의미 ②
③ 스레드가 실행중인 상태 수단을 차단하지만 수행하기 위해 CPU를하지 않았다 시간 상대 스레드 CPU에서 대기 상태가 실행 중
④ 사망 상태은 스레드 실행의 끝을 의미한다
''
# 스레드는 점을 알고 있어야합니다 사용
'' '
고유의 자원이 스레드
라는 지역 변수를 작동 스레드는 것 자체의 사본을
하지 않습니다 충돌
실 것입니다 때로는 발달에 문제가 원인 : 같은 같은 글로벌로 공유 데이터에 대한 액세스로 변수
'' '