mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			796 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			796 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import multiprocessing
 | |
| import random
 | |
| import sys
 | |
| 
 | |
| def fill_queue(queue, code):
 | |
|     queue.put(code)
 | |
| 
 | |
| 
 | |
| def drain_queue(queue, code):
 | |
|     if code != queue.get():
 | |
|         sys.exit(1)
 | |
| 
 | |
| 
 | |
| def test_func():
 | |
|     code = random.randrange(0, 1000)
 | |
|     queue = multiprocessing.Queue()
 | |
|     fill_pool = multiprocessing.Process(
 | |
|         target=fill_queue,
 | |
|         args=(queue, code)
 | |
|     )
 | |
|     drain_pool = multiprocessing.Process(
 | |
|         target=drain_queue,
 | |
|         args=(queue, code)
 | |
|     )
 | |
|     drain_pool.start()
 | |
|     fill_pool.start()
 | |
|     fill_pool.join()
 | |
|     drain_pool.join()
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     multiprocessing.set_start_method('spawn')
 | |
|     test_pool = multiprocessing.Process(target=test_func)
 | |
|     test_pool.start()
 | |
|     test_pool.join()
 | |
|     sys.exit(test_pool.exitcode)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | 
