소프트웨어 공학 학습은 열 번째 주 요약 진행

이번 주 여름이 공식적으로 인턴십 이유를 마련하기 위해 학교의 인식에서 이번 주에 종료 시작과 진전은 내용이없는 파이썬 스레드 관련의 어떤 부분

첫 번째는 단일 스레드 테스트입니다, 다음 그림의 렌더링을 실행

 

 다음과 같이 코드입니다 :

. 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 신경망 연습을 계속, 어서! ! !

 

추천

출처www.cnblogs.com/zdm-code/p/11493906.html