-
-
Save Omar-AE/018065049891a98257c61a3f68e6c7ce 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()