‘‘‘
@Time : 2020/3/29 14:30
@Author : laolao
@FileName: 2.py
‘‘‘
import threading
def thread_job():
print("This is an added Thread,number is %s" % threading.current_thread())
def main():
#查看现在有几个线程被激活
# [ < _MainThread(MainThread, started 17940) >]:默认的主程序的线程
print(threading.active_count())
# 查询被激活的线程都叫什么
print(threading.enumerate())
# 显示当前运行的程序是属于那个线程
print(threading.current_thread())
# 定义一个线程,括号里面写让线程执行的工作
added_thread = threading.Thread(target=thread_job)
added_thread.start() # 执行线程
if __name__ == ‘__main__‘:
main()
‘‘‘
@Time : 2020/3/29 14:30
@Author : laolao
@FileName: 2.py
‘‘‘
import threading
import time
def thread_job():
print(‘我是T1线程:T1 start‘)
for i in range(10):
time.sleep(0.1)
print("我是T1线程:T1 finish")
def T2_job():
print(‘我是T2线程:T2 start‘)
print("我是T2线程:T2 finish")
def main():
‘‘‘
target:让线程执行的工作
name:为这个线程取的名字
:return:
‘‘‘
added_thread = threading.Thread(target=thread_job,name=‘T1‘)
thread2 = threading.Thread(target=T2_job,name=‘T2‘)
added_thread.start() # 执行线程
thread2.start()
print(‘我跟T1线程同步执行‘)
# 如果希望自己的代码在线之后完成用join()
thread2.join()
print(‘我在T2线程执行后执行‘)
if __name__ == ‘__main__‘:
main()
‘‘‘
@Time : 2020/3/29 14:30
@Author : laolao
@FileName: 2.py
‘‘‘
import threading
import time
from queue import Queue
def job(l,q):
for i in range(len(l)):
l[i]=l[i]**2
q.put(l)
def multithreading():
q = Queue()
threads = [] # 线程列表
data = [[1,2,3],[3,4,5],[4,4,4],[5,5,5]]
for i in range(4):
‘‘‘
定义4个线程,并用列表保存起来
‘‘‘
t = threading.Thread(target=job,args=(data[i],q))
t.start()
threads.append(t)
for thread in threads:
‘‘‘
把每一线程都一次加载到主线程中
‘‘‘
thread.join()
result=[]
for _ in range(4):
result.append(q.get())
print(result)
if __name__ == ‘__main__‘:
multithreading()
‘‘‘
@Time : 2020/3/29 14:30
@Author : laolao
@FileName: 2.py
‘‘‘
import threading
import time
from queue import Queue
def job1():
global A
lock.acquire()
for i in range(10):
A+=1
print(‘job2‘,A)
lock.release()
def job2():
global A
lock.acquire() # 设定锁
‘‘‘
锁上后job1就不会接触到这一段
‘‘‘
for i in range(10):
A+=10
print(‘job2‘,A)
lock.release() # 释放锁
if __name__ == ‘__main__‘:
A=0
lock = threading.Lock()
t1 = threading.Thread(target=job1)
t2 = threading.Thread(target=job2)
t1.start()
t2.start()
t1.join()
t2.join()
原文:https://www.cnblogs.com/chrysanthemum/p/12592648.html