이번 주 여름이 공식적으로 인턴십 이유를 마련하기 위해 학교의 인식에서 이번 주에 종료 시작과 진전은 내용이없는 파이썬 스레드 관련의 어떤 부분
첫 번째는 단일 스레드 테스트입니다, 다음 그림의 렌더링을 실행
다음과 같이 코드입니다 :
. 1 에서 시간 가져 오기 SLEEP의 ctime이 2 DEF의 fun1 () . 3 인쇄 ( ' fun1를 실행 시작 : ' 의 ctime이 ()) 4. # 수면 4S 5. SLEEP (4. ) 6. 인쇄 ( ' 실행의 fun1 끝을 : ' 의 ctime이을 ()) . 7 DEF의 Fun2에 () . 8 인쇄 ( ' Fun2에 실행 시작 : ' 의 ctime이 ()) 9. # 잠 2S (10) 수면 (2 ) 11. 인쇄 ( ' 실행의 Fun2에 끝을 :' 의 ctime이 ()) (12)는 DEF 주 () : (13)는 인쇄 ( " 시작, 실행 시간 : " 의 ctime이 ()) 14 # 단일 스레드 fun1 통화 기능 및 Fun2에 기능 15 fun1 () 16 Fun2에 () 17. 인쇄 ( " 실행 종료 시간 : " 의 ctime이을 ()) (18)는 IF __name__ == ' __main__ ' : . 19 주 ()
다음과 같이 다음 시험, 효과는 다중 스레드 프로그램입니다 :
다음과 같이 코드입니다 :
. 1 가져 오기 _thread 스레드 AS 2 에서 시간 가져 오기 SLEEP의 ctime이 . 3 DEF의 fun1 () . 4 인쇄 ( ' fun1를 실행 시작합니다 ' 는 ctime이 ()) 5. # 수면 4S 6. SLEEP을 (4. ) 7. 인쇄 ( ' 실행의 fun1 끝을 : ' 상기 ctime이 ()) 8. DEF의 Fun2에 () . (9) 전단 ( ' Fun2에 실행을 시작합니다 ' 은 ctime이 ()) 10 명 # 슬립을 2S . 11 슬립 (2 ) (12)는 인쇄 ( ' 실행의 Fun2에 끝이 : ' 의 ctime이는 ()) (13)는 DEF () 주 : 14 인쇄 ( ' 시작, 실행 시간 : ' 의 ctime이 ()) 15 #은 함수 fun1을 실행하는 스레드를 시작 16 thread.start_new_thread (fun1을 () ()) 17 #은 Fun2에 기능을 실행하는 스레드를 시작 (18)는 ()) thread.start_new_thread (Fun2에 () . 19 # 슬립 6S 20 수면. (6 ) (21)는 인쇄 ( ' : 실행 종료 시간 ' )은 ctime이 () (22)는 IF __name__를 = = ' __main__ ': 23 주 ()
다음과 같이 기능 검사 매개 변수를 스레드에 전달되는 효과는 다음과 같습니다
다음과 같이 코드입니다 :
. (1) 오기 랜덤 2 에서 시간 가져 SLEEP은 ctime이 . (3) 수입 스레드 AS _thread . 4 # 스레드 기능, 및 (B)가 파라미터 start_new_thread 함수로 전달되는 것을 . 5 DEF의 재미 (A, B) . 6 프린트 (a, b) . 7 # 시간 (1~4 초)의 임의의 기간을 수면 8. SLEEP합니다 (random.randint (1,4 )) 9. #는 8 개 스레드 시작 (10)을 위한 I 의 범위 (8. ) . 11 #은 각각의 스레드에 대한 두 인수 함수 값 (12)는 thread.start_new_thread (재미, (내가 +. 1, ' '* (I는 +. 1 ))) (13)는 # 예를 중단 프로그램의 입력 단자에서 문자열 (14) 의 입력을 ()
다음과 같이 다음 테스트 스레드 및 잠금입니다, 효과는 다음과 같습니다
다음과 같이 코드입니다 :
. (1) 오기 _thread 스레드 AS 2 에서 시간 가져 SLEEP은 ctime이 . 3 # 스레드 함수는 정수형 인덱스의 인덱스 초 슬립 시간 (단위 : 초), 로크 대상 잠글 4. DEF의 재미 (인덱스 초 고정) : . (5) 인쇄 ( ' 시작 ' , 인덱스 ' 실행 시간 ' 은 ctime이 ()) . 6 # 수면 . 7 수면 (초) . 8 인쇄 ( " 실행이 종료 ' , 인덱스 ' 실행 시간 ' 은 ctime이가 ()) . 9 # 분리 잠금 객체 10 ) (lock.release를 11 DEF의 요점 ()은 : 12 #은 제 1 자물쇠 객체를 생성 (13) lock1 = thread.allocate_lock () 14 #은 로크 결합와 동등한 고정 취득 15 lock1.acquire ()를 16 #를 시작하는 최초의 스레드 및 패스 제 1 자물쇠 객체 인덱스가 10 인 경우, 휴면 시간은 4, 오브젝트 잠금 lock1이다 . 17 thread.start_new_thread (펀 (10,4 , lock1)) (18)는 #은 제 잠금 객체를 생성 . 19 lock2 = thread.allocate_lock () 20 # 로크 참여할 동등한 로크 취득 21된다 lock2.acquire ()는 (22)는 #은 , 수면 시간이 4, 인덱스가 10이고, 두 번째 스레드, 제 로크 대상을 시작 통과 물체 잠금 lock1 인 23은 쓰레드. start_new_thread (재미 (20, 2 , lock2)) 24 #은 while 루프와 lock1 잠김 및 해제 여부를 결정하는 방법은 lock2 25 동안 lock1.locked () 또는 () lock2.locked : 26 인 패스 (27) IF __name__ == ' __main__ ' : 28 주 ()
다음은 이번 주에의 모든 내용이며, 다음 주 배우고 U-NET 신경망 연습을 계속, 어서! ! !