Created
October 27, 2016 06:36
-
-
Save amirasaran/e91c7253c03518b8f7b7955df0e954bb to your computer and use it in GitHub Desktop.
Revisions
-
amirasaran created this gist
Oct 27, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,40 @@ import time import threading class BaseThread(threading.Thread): def __init__(self, callback=None, callback_args=None, *args, **kwargs): target = kwargs.pop('target') super(BaseThread, self).__init__(target=self.target_with_callback, *args, **kwargs) self.callback = callback self.method = target self.callback_args = callback_args def target_with_callback(self): self.method() if self.callback is not None: self.callback(*self.callback_args) def my_thread_job(): # do any things here print "thread start successfully and sleep for 5 seconds" time.sleep(5) print "thread ended successfully!" def cb(param1, param2): # this is run after your thread end print "callback function called" print "{} {}".format(param1, param2) # example using BaseThread with callback thread = BaseThread( name='test', target=my_thread_job, callback=cb, callback_args=("hello", "world") ) thread.start()