#进程:本质上是一段程序的运行过程。(抽象的概念)
#线程:最小的执行单元
#进程:最小的资源单位
# 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()