from threading import Thread,BoundedSemaphore from time import sleep def an_JIan(number): renshu.acquire() print(f"第{number}个人在安检") sleep(3) renshu.release() if __name__ == '__main__': renshu=BoundedSemaphore(3) for x in range(10): t1=Thread(target=an_JIan,args=(f'{x+1}',)) t1.start()
#老师我的运行结果每次不一样是怎么回事呢
'''
第1个人在安检
第2个人在安检
第3个人在安检
第4个人在安检
第6个人在安检
第5个人在安检
第8个人在安检
第7个人在安检
第9个人在安检
第10个人在安检
进程已结束,退出代码为 0
第二种如下:
老师您好
如下图所示,为什么报错threading中没有Thread这个属性呢
老师,请问一下
(1)老师在课程中讲到图1里 说是释放了cpu导致文件被销毁,然后无法执行下去,那在图2里又释放了cpu 却得到了结果,这里我不是很明白,麻烦老师讲解一下.
(2)图3中,那个绑定回调参数,与前面的参数x,y不相同,那他是怎样样调用的呢?传递的原理是怎么样的.
老师,请问全局变量global的声明在函数里声明,和在函数的循环里声明有什么区别
老师第一个问题 关于这个事件 视频中老师举了两个例子 其实还是说明有两个线程 在调用一个方法的时候 可以通过事件event的一个状态来设置什么时候ti这个线程可以进入 什么时候t2这个线程可以进入 不管是车来了还是门开了 都是在说明这个问题 可以这样理解吗
第二个问题 不管车来了还是门开了这两个例子里t1和t2线程 他们是并行还是串行 弄的有点混乱
from threading import Thread,BoundedSemaphore from time import sleep def anjian(num):#num就是要传入的参数 l.acquire() print(f'第{num}个人完成安检') sleep(2) l.release() if __name__=="__main__": l=BoundedSemaphore(3)#里面数字就是 你设置的同时运行的线程数 for i in range(10): t=Thread(target=anjian,args=(f'{i+1}',)) t.start()
老师 请问 为什么运行出来 格式就不整齐了
C:\Users\pcl\venv\Scripts\python.exe "C:/Users/pcl/.1aPython all exercise/线程与进程/信号量.py"
第1个人完成安检
第2个人完成安检
第3个人完成安检
第4个人完成安检
第5个人完成安检第6个人完成安检
第8个人完成安检第9个人完成安检
第7个人完成安检
第10个人完成安检
Process finished with exit code 0
视频中说协程无法利用多核资源。协程本身是个单线程,它不能同时将单个cpu的多个核用上。需要与进程配合才能运行在多cpu上。我的问题是,上面所说的意思是协程需要与进程配合才能运行在多cpu上还是协程需要与进程配合才能运行在一个cpu的多个核上?我的理解是一个python解释器开启一个进程,这个进程只有一个线程,然后我们在这个线程中运用协程来充分利用进程所在的这个核(cpu的一个核)。那么如果我们开启多进程,每个进程在不同的核中运行,这样就可以实现并行。不知道我的理解对不对。请老师指点!
是put()进去的数据只能get()一次嘛?为什么子程序里面用到了get(),再print却只能打印第二次放进去的,就开在那里了
老师,怎么像高淇老师一样,快捷键导入
请问老师,在PriorityQueue中,数字间、字符串间、元组间、列表间均可以进行优先级比较,为什么字典不行,把字典的“键”均设成数字也不能进行优先级比较,是因为字典是无序的原因吗?
from socket import * tcpSock = socket(AF_INET, SOCK_STREAM) #SOCK_STREAM 表示TCP tcpSock.bind("", 7788) #默认使用7788端口做监听 tcpSock.listen(5) #最多只有5个同时监听 newSock, clientAddr = tcpSock.accept() #.accept()等待别人和自己创立链接 newSock.recv(1024) newSock.send(b"xiexie") newSock.close() tcpSock.close()
老师请问这是什么情况
进程池pool的apple_async方法中传递的参数是函数,
如果我的进程是
class Simulation(multiprocessing.Process):
这种形式的,不是函数形式的,该怎么把进程类加入进程池呢
from threading import Thread from time import sleep # 类实现——多线程 class MyThread(Thread): def __init__(self, name): Thread.__init__(self) self.name = name def run(self): print(f'Threading:{self.name} start ') sleep(3) print(f'Threading:{self.name} end ') if __name__ == '__main__': # 创建线程 for i in range(20): t = MyThread(f't{i+1}') t.start() print('主进程结束!')
老师,为什么我运行之后这里end顺序是乱的
老师从哪里可以看最多可以一次进行多少个线程啊?如果系统一共能开8个线程我开了4个,他们和开一个的效率一样吗?
在命令行返回这个是什么意思? ping 代表什么?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637