Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Test between thread and sigint
import threading
import time
import signal, sys
def signal_handler(signal, frame):
exitFlag = 1
print(' You pressed Ctrl+C!')
# sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
exitFlag = 0
class myThread (threading.Thread):
def __init__(self, threadID, name, counter):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.counter = counter
def run(self):
print ("Starting " + self.name)
print_time(self.name, self.counter, 5)
print ("Exiting " + self.name)
def print_time(threadName, delay, counter):
while counter:
if exitFlag:
threadName.exit()
time.sleep(delay)
print ("%s: %s" % (threadName, time.ctime(time.time())))
counter -= 1
# Create new threads
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)
# Start new Threads
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print ("Exiting Main Thread")
@rbonghi

This comment has been minimized.

Copy link
Owner Author

@rbonghi rbonghi commented Apr 20, 2017

This is all messages print.
I've pressed CTRL-C after startup, but the code plot the message after many time.

Starting Thread-1
Starting Thread-2
Thread-1: Thu Apr 20 09:55:46 2017
Thread-1: Thu Apr 20 09:55:47 2017
Thread-2: Thu Apr 20 09:55:47 2017
Thread-1: Thu Apr 20 09:55:48 2017
Thread-2: Thu Apr 20 09:55:49 2017
Thread-1: Thu Apr 20 09:55:49 2017
Thread-1: Thu Apr 20 09:55:50 2017
Exiting Thread-1
You pressed Ctrl+C!
Thread-2: Thu Apr 20 09:55:51 2017
Thread-2: Thu Apr 20 09:55:53 2017
Thread-2: Thu Apr 20 09:55:55 2017
Exiting Thread-2
You pressed Ctrl+C!
Exiting Main Thread

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment