菜鸟Python之————题海战术(14)

news/2024/10/24 22:23:09/

#小练习
# from multiprocessing import Process,Queue
# class Student():
#     def __init__(self,name,age):
#         self.name=name
#         self.__age=age
#     def say(self):
#         print(self.name,self.__age)
#     def show(self):
#         return self.__age
# def sender(q):
#     zs=Student('张三',10)
#     ls=Student('李四',20)
#     ww=Student('王五',30)
#     zl=Student('赵六',40)
#     a=[zs,ls,ww,zl]
#     for x in a:
#         q.put(x)
# def receiver(q):
#     num=0
#     for i in range(4):
#         x=q.get()
#         if 30>=x.show()>=20:
#             num+=1
#             print(x.name,x.show())
# if __name__ == '__main__':
#     q=Queue(4)
#     p1=Process(target=sender,args=(q,))
#     p2=Process(target=receiver,args=(q,))
#     p1.start()
#     p2.start()#线程 ————锁
# from threading import Thread
# import time
# dongzuo=0   #全局资源
# def sing():
#     global dongzuo    #  获取全局资源
#     for i in range(5):
#         print('唱歌:动作',dongzuo)
#         dongzuo+=1
#         time.sleep(0.6)
# def dance():
#     global dongzuo   #全局资源
#     for i in range(5):
#         print('跳舞:动作',dongzuo)
#         dongzuo+=1
#         time.sleep(0.6)
# if __name__ == '__main__':
#     t1=Thread(target=sing)
#     t2=Thread(target=dance)
#     t1.start()
#     t2.start()#互斥锁# from threading import Thread,Lock
# import time
# dongzuo=0   #全局资源
# def sing():
#     global dongzuo    #  获取全局资源
#     for i in range(5):
#         lockx.acquire()
#         print('唱歌:动作',dongzuo)
#         dongzuo+=1
#         lockx.release()
#         time.sleep(0.6)
# def dance():
#     global dongzuo   #全局资源
#     for i in range(5):
#         lockx.acquire()   #索获取资源
#         print('跳舞:动作',dongzuo)
#         dongzuo+=1
#         lockx.release()
#         time.sleep(0.6)
# if __name__ == '__main__':
#     lockx=Lock()   #定义一个锁
#     t1=Thread(target=sing)
#     t2=Thread(target=dance)
#     t1.start()
#     t2.start()#死锁# from threading import Thread,Lock
# import time
# #死锁  都砸等待对方的条件
# def wzuoFan():
#     guoLock.acquire()  #获取了锅的锁
#     print('w获取了锅')
#     time.sleep(3)
#     shaoLock.acquire()  #希望勺的锁,但是勺的锁被xzuoFan首先获取
#     print('w可以做饭了')
#     guoLock.release()
#     shaoLock.release()
# def xzuoFan():
#     shaoLock.acquire()  #获取了勺的锁
#     print('x获取了勺')
#     time.sleep(3)
#     shaoLock.acquire()  #希望锅的锁,但是锅的锁被wzuoFan首先获取
#     print('x可以做饭了')
#     shaoLock.release()
#     guoLock.release()
# if __name__ == '__main__':
#     guoLock=Lock()
#     shaoLock=Lock()
#     t1=Thread(target=wzuoFan)
#     t2=Thread(target=xzuoFan)
#     t1.start()
#     t2.start()#小练习# from threading import Thread,Lock
# import time
# def daoshu():
#     lock.acquire()
#     for i in range(len(a)):
#         j=str(a[i])
#         d=j[::-1]
#         a[i]=int(d)
#     lock.release()
# def daoxu():
#     lock.acquire()
#     i=0
#     j=len(a)-1
#     while i<len(a)//2:
#         a[i],a[j]=a[j],a[i]
#         i+=1
#         j-=1
#     lock.release()
# if __name__ == '__main__':
#     a=[123,234,456,789]
#     lock=Lock()
#     t1=Thread(target=daoshu)
#     t2 = Thread(target=daoxu)
#     t1.start()
#     t2.start()
#     t1.join()
#     t2.join()
#     print(a)#线程对列# from threading import Thread,Lock
# from queue import Queue
# q=Queue(3)
# print(q.empty())
# q.put('1')
# q.put('2')
# q.put('3')
# print(q.get())
# q.put("4")
# print(q.full())
# try:
#     q.put('5',block=False)
# except:
#     print('满了')#对列
# from threading import Thread,Lock
# from queue import LifoQueue  # 后进先出
# q=LifoQueue(3)
# q.put(1)
# q.put(2)
# q.put(3)
# print(q.get())
# print(q.get())
# print(q.get())#优先级的消息对列
# from threading import Thread,Lock
# from queue import PriorityQueue
# q=PriorityQueue(5)
# q.put((2,'消息1'))
# q.put((3,'消息2'))
# q.put((5,'消息3'))
# q.put((1,'消息4'))
# print(q.get())
# print(q.get())
# print(q.get())
# print(q.get())# from threading import Thread,Lock
# from queue import PriorityQueue
# q=PriorityQueue(5)
# q.put((2,'消息1'))
# q.put((3,'消息2'))
# q.put((5,'消息3'))
# q.put((1,'消息4'))
# print(q.get())
# print(q.get())
# print(q.get())
# print(q.get())
# while q.qsize()>0:
#     print(q.get())#线程间通信
# from threading import Thread,Lock
# from queue import Queue
# import time
# def chanbaozi(name,q):
#     count=0
#     while True:
#         bz='包子%d'%(count+1)
#         q.put(bz)
#         s=name+'生成'+bz
#         print(s)
#         count+=1
#         time.sleep(1)
# def chibaozi(name,q):
#     while True:
#         bz=q.get()
#         s=name+'吃'+bz
#         print(s)
#         time.sleep(1.5)
# if __name__ == '__main__':
#     q=Queue(2)
#     t1=Thread(target=chanbaozi,args=('你',q))
#     t2=Thread(target=chibaozi,args=('我',q))
#     t1.start()
#    t2.start()#线程子类化
# from threading import Thread
# from queue import   Queue
# import time
# class MyThread(Thread):
#     def __init__(self,q,style):
#         super().__init__()
#         self.q=q
#         self.style=style
#     def run(self):
#         if self.style=='生产':
#             i=0
#             while i<10:
#                 self.q.put(str('包子'+str(i+1)))
#                 s='生产包子'+str(i+1)
#                 print(s)
#                 time.sleep(1)
#                 i+=1
#         else:
#             i=0
#             while i<10:
#                 s='消费'+ q.get()
#                 print(s)
#                 time.sleep(1)
#                 i+=1
# if __name__ == '__main__':
#     q=Queue(3)
#     t=MyThread(q,'生产')
#     t.start()
#     t1=MyThread(q,'消费')
#     t1.start()#同步互斥锁# from threading import Thread,Lock
# from queue import Queue
# import time
# x=0
# def A():
#     global x
#     i=0
#     y.acquire()
#     while i<100000:
#         x=x+1
#         i+=1
#     y.release()
#     print(x)
# def B():
#     global x
#     y.acquire()
#     i=0
#     while i<100000:
#         x=x+1
#         i+=1
#     y.release()
#     print(x)
# if __name__ == '__main__':
#     y=Lock()
#     t1=Thread(target=A)
#     t2=Thread(target=B)
#     t1.start()
#     t2.start()#协程# import time
# def A(hs):
#     i=0
#     while i<10:
#         print('A开始')
#         next(hs)
#         print('A结束')
#         i+=1
# def b():
#     i=0
#     while i<10:
#         print('B开始')
#         yield
#         print('B结束')
# if __name__ == '__main__':
#     x=b()
#     A(x)import time
from threading import Thread
from multiprocessing import Process
def A():i=0start=time.time()while i<30000000:i+=1end=time.time()print(end-start)
def B():i=0start=time.time()while i<30000000:i+=1end=time.time()print(end-start)
if __name__ == '__main__':t1=Process(target=A)t2=Process(target=B)t1.start()t2.start()

http://www.ppmy.cn/news/204082.html

相关文章

linux和macos_如何在macOS和Linux上修复Corsair鼠标和键盘问题

linux和macos Corsair makes excellent “gaming” mice and keyboards with many great features, like custom RGB lighting, profile modes, macro support, and fine-tuned performance settings. Most of these require iCUE, Corsair’s proprietary software, which is …

海盗分金

海盗分金 时间限制: 1 Sec 内存限制: 128 MB 提交: 4 解决: 4 [ 提交][ 状态][ 讨论版] 题目描述 一群海盗已经把手放在一堆金币上&#xff0c;并希望划分战利品。他们是以他们自己的方式进行划分&#xff0c;他们习惯于按照以下方式进行这样的分金币&#xff1a;最凶猛的海…

海盗喝酒

题目&#xff1a;有一群海盗&#xff08;不多于20人&#xff09;在船上比拼酒量&#xff0c;过程如下&#xff1a;打开一瓶酒&#xff0c;所有在场的人平分喝下&#xff0c;有几个人倒下了。再打开一瓶酒平分&#xff0c;又有倒下的&#xff0c;再次重复...... 直到开了第4瓶酒…

ABAP算法题:海盗报数问题。

题目:有一艘海盗船上面有30个海盗&#xff0c;分别为海盗1-30号忽然海盗船撞上了冰山&#xff0c;船上只能留下一个人&#xff0c;船长命令大家循环数数&#xff0c;数到7和7的倍数的人&#xff0c;跳到海里去。 分析&#xff1a; 没什么好分析的。 输入海盗人数&#xff0c;输…

动态规划之海盗船运宝藏问题

闲来无事&#xff0c;想到了自己对解动态规划问题掌握的还不大熟练&#xff0c;所以做个题练习下。 1&#xff0c;问题描述&#xff1a; 有一辆小船&#xff0c;能够承载的最高重量为c&#xff0c;当船承载的重量超过c时&#xff0c;船会沉没。 现在有n个物品&#xff0c;物…

java 孤岛问题_java算法题,话说某天一艘海盗船被天下砸下来的一头牛给击中了,5个倒霉的家伙只好逃难到一个孤岛,发现岛上孤零零的,幸好...

java算法题,话说某天一艘海盗船被天下砸下来的一头牛给击中了,5个倒霉的家伙只好逃难到一个孤岛,发现岛上孤零零的,幸好 java算法题, 话说某天一艘海盗船被天下砸下来的一头牛给击中了,5个倒霉的家伙只好逃难到一个孤岛,发现岛上孤零零的,幸好有有棵椰子树,还有一只猴子? 大家…

习题:海盗船(广搜)

海盗船&#xff08;corsair&#xff09; 【问题描述】 有一个很有趣的游戏叫做海盗船。这是一个在9*8的棋盘上进行的游戏&#xff0c;棋盘上的每个格子可能是下面4种状态之一&#xff1a; “.”&#xff1a;表示当前格子为空&#xff1b; “S”&#xff1a;表示你的船所在的位置…

【广搜】海盗船

海盗船&#xff08;corsair&#xff09; 【问题描述】 有一个很有趣的游戏叫做海盗船。这是一个在9*8的棋盘上进行的游戏&#xff0c;棋盘上的每个格子可能是下面4种状态之一&#xff1a; “.”&#xff1a;表示当前格子为空&#xff1b; “S”&#xff1a;表示你的船所在的…