Python3.2官方文档翻译--使用二进制数据记录布局和多线程

8.3 使用二进制数据记录布局

Struct模块提供了pack()unpack()方法来处理可变长度的二进制格式。接下来的例子展示在一个没用zipfile模块的zipfile如何通过标题信息循环。压缩码“H”和“I”分别表示24字节无符号数字,“<”表明都是标准大小并且按照little-endian字节排序。

 

8.4 多线程

线程是一种针对分离不连续和依赖的任务的技术。用线程可以提高那些允许用户输入的程序响应,同时有其他程序在后台运行。一个相关的应用就是在运行I/O的同时另一个线程中执行运算。

下面的代码展示高优先级threading模块在后台执行任务时,但是主程序继续运行。

 

对于多线程应用最大的挑战就是协调那些共享数据或者资源的线程。到最终,线程模块提供大量同步原语,包括锁,时间,条件变量以及信号量

尽管这些工具功能很强大,但微小的设计错误就可能导致难以挽回的故障。因此,任务协调的首选方法就是把所有对资源访问集中到一个单线程中,然后用queue模块来那个线程来服务其他线程的请求。为内部线程通信和协调而用Queue对象的应用程序比较容易设计,更加可读,而且更加可靠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值