Python简单实现线程顺序执行与线程并发执行

from threading import Thread
import time
from time import sleep,ctime

def my_counter():
    for i in range(2):
        n=i+1
    sleep(1)   
    return n
def main():
    thread_array={}
    start_time=time.time()    #开始计时
    for tid in range(2):
        t=Thread(target=my_counter)  #线程中执行my_counter函数
        t.start()
        print"%s is running thread No.%d"%(ctime(),tid+1)
        t.join()                     #等待到该线程结束,才开始执行下一个线程
        print"%s thread No.%d ended"%(ctime(),tid+1)
        sleep(1)        
    end_time=time.time()     #结束计时

    print("Total time:{}".format(end_time-start_time))

if __name__=='__main__':
    main()
Fri Apr 06 12:16:00 2018 is running thread No.1
Fri Apr 06 12:16:01 2018 thread No.1 ended
Fri Apr 06 12:16:02 2018 is running thread No.2
Fri Apr 06 12:16:03 2018 thread No.2 ended
Total time:4.00600004196

以上代码实现了线程的顺序执行

from threading import Thread
import time
from time import ctime,sleep

def my_counter():

    for i in range(2):
        i+=1
    sleep(1)
    return True

def main():
    thread_array={}
    start_time=time.time()
    for tid in range(2):
        t=Thread(target=my_counter)
        t.start()
        thread_array[tid]=t
        print"%s is running thread_array[%d]"%(ctime(),tid)
    for i in range(2):
        thread_array[i].join()
        print"%s thread_array[%d] ended"%(ctime(),i)
    end_time=time.time()
    print("Total time:{}".format(end_time-start_time))

if __name__=='__main__':
    main()
Fri Apr 06 12:18:22 2018 is running thread_array[0]
Fri Apr 06 12:18:22 2018 is running thread_array[1]
Fri Apr 06 12:18:23 2018 thread_array[0] ended
Fri Apr 06 12:18:23 2018 thread_array[1] ended
Total time:1.00300002098

以上代码实现了线程的并发执行

猜你喜欢

转载自blog.csdn.net/elite666/article/details/79832548