python24-进程、线程

151 阅读1分钟
#进程:本质上是一段程序的运行过程。(抽象的概念)
#线程:最小的执行单元
#进程:最小的资源单位

# import threading
# import time

#创建两个子线程,达到并行效果。
# def method1(num):
#     print('hello %s'%num)
#     time.sleep(3)
#     print('yes')
# if __name__ == '__main__':
#     t1=threading.Thread(target=method1,args=(10,))
#     t1.start()
#
#     t2 = threading.Thread(target=method1, args=(11,))
#     t2.start()
#
#     print('end....')
# def music():
#     print('begin to listen %s'%time.ctime())
#     time.sleep(3)
#     print('stope to listen %s'%time.ctime())
# def game():
#     print('begin to play game %s'%time.ctime())
#     time.sleep(5)
#     print('stop to play game %s'%time.ctime())
# if __name__ == '__main__':
#     t1=threading.Thread(target=music)
#
#     t2=threading.Thread(target=game)
#
#     t1.start()
#     t2.start()
#
#     #t1.join()
#     t2.join()
#     print('end.......')
###############################################################################################
#join()在子线程完成运行之前,这个子线程的其他线程将一直被阻塞
import threading
from time import ctime,sleep
import time

def ListenMusic(name):

        print ("Begin listening to %s. %s" %(name,ctime()))
        sleep(3)
        print("end listening %s"%ctime())

def RecordBlog(title):

        print ("Begin recording the %s! %s" %(title,ctime()))
        sleep(5)
        print('end recording %s'%ctime())


threads = []


t1 = threading.Thread(target=ListenMusic,args=('水手',))
t2 = threading.Thread(target=RecordBlog,args=('python线程',))

threads.append(t1)
threads.append(t2)

if __name__ == '__main__':
    #子线程不管执行完成与否都会跟着主线程结束。
    t2.setDaemon(True)
    for t in threads:
        #t1.setDaemon(True) #注意:一定在start之前设置
        t.start()
        # t.join()
    # t1.join()
    #t1.setDaemon(True)

    #t2.join()########考虑这三种join位置下的结果?
    print ("all over %s" %ctime())
########################################################################
for i in range(10):
    i+=1
print(i)
def method1():

    sum = 0
    for i in range(10):
        sum += 1
        print(str(sum)+'aaaa')
def method2():

    sum = 0
    for i in range(10):
        sum+=1
        print(sum)

import threading
t1 = threading.Thread(target=method1)
t2 = threading.Thread(target=method2)
l = [t1,t2]
for i in l:
    i.start()
    #不会有效果
   # i.join()