|
|
1
5
正如前面提到的,Kamaelia旨在使并发性在Python中更容易使用。 它最初的用例是网络系统(这是自然并发的),并以“我们如何使这些系统更容易开发和维护”的观点进行开发。 从那时起,生活开始了,它被广泛应用于各种各样的问题领域,从桌面系统(如白板应用程序、数据库建模、教孩子读写的工具)到网站后端系统(如用于转码和转换用户贡献的图像和视频的东西,用于网络Playba)。在各种场景和短信息/短信应用程序中。 核心概念基本上与Unix管道的概念相同——除了可以使用Python生成器、线程或进程(称为组件)而不是进程之外。它们通过收件箱和发件箱进行通信-每个发件箱的数量随您的喜好而定,而不仅仅是stdin/stdout/stderr。此外,您不需要序列化的文件接口,而是在组件之间传递完全成熟的Python对象。也可以有任意形状的图形线,而不是仅限于管道。 您可以在这里找到完整的教程(视频、幻灯片、可下载的PDF小册子): 或者这里的5分钟版本(O'Reilly Ignite Talk): 该库的重点是实用性开发、系统安全性和易于维护,尽管最近在添加一些语法糖分方面做了一些努力。像任何事情一样,开发人员(我和其他人:—)欢迎关于改进它的反馈。 您还可以在此处找到更多信息: - http://www.slideshare.net/kamaelian 首先,Kamaelia的核心(Axon)是为了使我的日常工作更容易,并以可重用的方式总结最佳实践(消息传递、软件事务性内存)。我希望这也能让你的生活更轻松些。 |
|
|
2
5
虽然这可能不是很明显,
itertools.count
是
实际上是一个原子计数器
只有
对实例的操作
也就是说,假设您当前有一个数据结构,例如:
您的问题是,后一个增量不是原子的,所以如果两个线程同时处理同一个感兴趣的字,那么两个增量可能会相互干扰(只有一个线程会“接受”,所以计数器的增量只能是一个,而不是两个)。然后:
将以原子方式执行相同的操作。
(不幸的是,没有明显的、有记录的方法“提取计数器的当前值”,尽管事实上
|
|
|
3
3
Python(至少cpython)和Java的并发性非常不同,至少部分是因为全局解释器锁(吉尔)。通常,Python中的并发性不是通过线程实现的,而是通过进程实现的。见
另外,退房 "A Curious Course on Coroutines and Concurrency" 对于一些来自Java的新的并发技术。DavidBeazley(作者)是一个聪明人,当涉及到Python时,尤其是并发性。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |