mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
	
	
		
			39 lines
		
	
	
	
		
			825 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			825 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import os | ||
|  | import sys | ||
|  | import threading | ||
|  | import traceback | ||
|  | 
 | ||
|  | 
 | ||
|  | NLOOPS = 50 | ||
|  | NTHREADS = 30 | ||
|  | 
 | ||
|  | 
 | ||
|  | def t1(): | ||
|  |     try: | ||
|  |         from concurrent.futures import ThreadPoolExecutor | ||
|  |     except Exception: | ||
|  |         traceback.print_exc() | ||
|  |         os._exit(1) | ||
|  | 
 | ||
|  | def t2(): | ||
|  |     try: | ||
|  |         from concurrent.futures.thread import ThreadPoolExecutor | ||
|  |     except Exception: | ||
|  |         traceback.print_exc() | ||
|  |         os._exit(1) | ||
|  | 
 | ||
|  | def main(): | ||
|  |     for j in range(NLOOPS): | ||
|  |         threads = [] | ||
|  |         for i in range(NTHREADS): | ||
|  |             threads.append(threading.Thread(target=t2 if i % 1 else t1)) | ||
|  |         for thread in threads: | ||
|  |             thread.start() | ||
|  |         for thread in threads: | ||
|  |             thread.join() | ||
|  |         sys.modules.pop('concurrent.futures', None) | ||
|  |         sys.modules.pop('concurrent.futures.thread', None) | ||
|  | 
 | ||
|  | if __name__ == "__main__": | ||
|  |     main() |