পাইথনের মাল্টিপ্রসেসিং পুলগুলির সাহায্যে কী-বোর্ড ইন্টারটার্ট ইভেন্টগুলি কীভাবে আমি পরিচালনা করতে পারি? এখানে একটি সহজ উদাহরণ:
from multiprocessing import Pool
from time import sleep
from sys import exit
def slowly_square(i):
sleep(1)
return i*i
def go():
pool = Pool(8)
try:
results = pool.map(slowly_square, range(40))
except KeyboardInterrupt:
# **** THIS PART NEVER EXECUTES. ****
pool.terminate()
print "You cancelled the program!"
sys.exit(1)
print "\nFinally, here are the results: ", results
if __name__ == "__main__":
go()
উপরের কোডটি চালানোর KeyboardInterrupt
সময়, আমি টিপানোর সময় উত্থাপিত হয় ^C
, তবে প্রক্রিয়াটি কেবল সেই সময়ে স্তব্ধ হয় এবং আমাকে এটি বাহ্যিকভাবে হত্যা করতে হয়।
আমি যে ^C
কোনও সময় টিপতে সক্ষম হতে চাই এবং সমস্ত প্রক্রিয়াটি নিখুঁতভাবে প্রস্থান করতে চাই।