···
首页
···
开发工具
···
开发入门教程
···
网址导航
···
搜索
Ctrl K
线程阻塞
12.2 判断线程是否已经启动
12.2 判断线程是否已经启动,问题,你已经启动了一个线程,但是你想知道它是不是真的已经开始运行了。,解决方案,线程的一个关键特性是每个线程都是独立运行且状态不可预测。如果程序中的其他线程需要通过判断某个线程的状...
12.1 启动与停止线程
12.1 启动与停止线程,问题,你要为需要并发执行的代码创建/销毁线程,解决方案,threading 库可以在单独的线程中执行任何的在 Python 中可以调用的对象。你可以创建一个 Thread 对象并将你要执行的对象以 target 参数的...
12.3 线程间通信
12.3 线程间通信,问题,你的程序中有多个线程,你需要在这些线程之间安全地交换信息或数据,解决方案,从一个线程向另一个线程发送数据最安全的方式可能就是使用 queue 库中的队列了。创建一个被多个线程共享的 Queue 对...
12.5 防止死锁的加锁机制
12.5 防止死锁的加锁机制,问题,你正在写一个多线程程序,其中线程需要一次获取多个锁,此时如何避免死锁问题。,解决方案,在多线程程序中,死锁问题很大一部分是由于线程同时获取多个锁造成的。举个例子:一个线程获取了第...
12.7 创建一个线程池
12.7 创建一个线程池,问题,你创建一个工作者线程池,用来响应客户端请求或执行其他的工作。,解决方案,concurrent.futures 函数库有一个 ThreadPoolExecutor 类可以被用来完成这个任务。 下面是一个简单的TCP服务器,使用...
12.4 给关键部分加锁
12.4 给关键部分加锁,问题,你需要对多线程程序中的临界区加锁以避免竞争条件。,解决方案,要在多线程程序中安全使用可变对象,你需要使用 threading 库中的 Lock 对象,就像下边这个例子这样:,import threading,,class S...
上一页
1
2
3
4
下一页
前往
页