程序思路:
1.定义二个函数a, b
2.在同一个主进程中a 2秒执行一次, b 5秒执行一次
方法一:
# -*- coding:utf-8 -*-
import time
import threading
def a(param):
for i in range(2):
print "This is func a() %s. %s" %(param, time.ctime())
time.sleep(2)
def b(param):
for i in range(2):
print "This is func b() %s! %s" %(param, time.ctime())
time.sleep(5)
threads = []
t1 = threading.Thread(target=a, args=('aaa', ))
threads.append(t1)
t2 = threading.Thread(target=b, args=('bbb', ))
threads.append(t2)
if __name__ == '__main__':
for i in threads:
i.setDaemon(True)
i.start()
i.join()
print "end thread %s" % time.ctime()
输出结果:
This is func a() aaa. Mon Aug 01 18:12:44 2016
This is func b() bbb! Mon Aug 01 18:12:44 2016
This is func a() aaa. Mon Aug 01 18:12:46 2016
This is func b() bbb! Mon Aug 01 18:12:49 2016
end thread Mon Aug 01 18:12:54 2016
方法二:
# -*- coding:utf-8 -*-
import threading
import time
class A(threading.Thread):
def __init__(self, param, sec):
super(A, self).__init__()
self.sec = sec
self.param = param
def run(self):
for i in range(2):
print "This is func a() %s. %s" %(self.param, time.ctime())
time.sleep(self.sec)
class B(threading.Thread):
def __init__(self, param, sec):
super(B, self).__init__()
self.sec = sec
self.param = param
def run(self):
for i in range(2):
print "This is func b() %s. %s" %(self.param, time.ctime())
time.sleep(self.sec)
def main():
threads = []
print 'start at:', time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
threads.append(A('aaa', 2))
threads.append(B('bbb', 5))
for t in threads:
t.start()
for t in threads:
t.join()
print 'stop at:', time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
if __name__ == '__main__':
main()
输出结果:
start at: 2016-08-02 10:28:45
This is func a() aaa. Tue Aug 02 10:28:45 2016
This is func b() bbb. Tue Aug 02 10:28:45 2016
This is func a() aaa. Tue Aug 02 10:28:47 2016
This is func b() bbb. Tue Aug 02 10:28:50 2016
stop at: 2016-08-02 10:28:55