import signal def is_main_thread(): try: # Backup the current signal handler back_up = signal.signal(signal.SIGINT, signal.SIG_DFL) except ValueError: # Only Main Thread can handle signals return False # Restore signal handler signal.signal(signal.SIGINT, back_up) return True print (is_main_thread())