Lisp的STM库 STMX

码农软件 · 软件分类 · 并发/并行处理框架 · 2019-09-02 23:27:43

软件介绍

STMX 是一个高性能的 Common Lisp 库,用于实现可组合的软件事务内存机制。

事务内存是一种并行程序设计的方式,其来自于数据库管理系统(DBMS)中的事务(Transaction)概念。事务内存目前有两种实现方式,基于软件的STM(Software Transactional Memory)和基于硬件的HTM(Hardware Transacational Memory)。

采用任务并行时必须考虑线程间同步的问题:最初步也是最通常的方法是使用锁,只有获得了锁的线程在允许访问临界区,但是使用锁会发生一些问题,诸如优先级反转(Priority inversion)、死锁(Deadlock)、护航(Convoying)等问题;于是后来产生了无锁编程(Lockless programming)的概念,即使用原子操作(Atomic Operations)和同步路障(Memory barrier)来完成线程间同步的功能,这种方法规避了使用锁时出现的上述问题并极大的提高了并行度,但是面临着原子操作本身功能局限性和组合性(Compositionality)不佳的问题。原子操作的局限性使得无锁编程的算法设计很难,组合性则是指数个同步的原子对象组合应该也是一个同步的原子对象。

更详细关于 STM 的介绍请看维基百科

本文地址:https://codercto.com/soft/d/13754.html

编程匠艺

编程匠艺

Pete Goodliffe / 韩江、陈玉 / 电子工业出版社 / 2011-11 / 85.00元

如果你可以编写出合格的代码,但是想更进一步、创作出组织良好而且易于理解的代码,并希望成为一名真正的编程专家或提高现有的职业技能,那么Pete Goodliffe编写的这本本书都会为你给出答案。本书的内容涵盖编程的各个要素,如代码风格、变量命名、错误处理和安全性等。此外,本书还对一些更广泛的编程问题进行了探讨,如有效的团队合作、开发过程和文档编写,等等。本书各章的末尾均提供一些思考问题,这些问题回顾......一起来看看 《编程匠艺》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具