STMX

Lisp的STM库
授权协议 LGPL
开发语言 Lisp
所属分类 程序开发、 并发/并行处理框架
软件类型 开源软件
地区 不详
投 递 者 闾丘博超
操作系统 Windows
开源组织
适用人群 未知
 软件概览

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 的介绍请看维基百科

  • STMX 1.3.2 增加对 ABCL (Armed Bear Common Lisp) 的支持,此外性能也进一步得到提升。 STMX 是一个高性能的 Common Lisp 库,用于实现可组合的软件事务内存机制。 事务内存是一种并行程序设计的方式,其来自于数据库管理系统(DBMS)中的事务(Transaction)概念。事务内存目前有两种实现方式,基 于软件的STM(Software Trans

  • 软件简介 STMX 是一个高性能的 Common Lisp 库,用于实现可组合的软件事务内存机制。 事务内存是一种并行程序设计的方式,其来自于数据库管理系统(DBMS)中的事务(Transaction)概念。事务内存目前有两种实现方式,基于软件的STM(Software Transactional Memory)和基于硬件的HTM(Hardware Transacational Memory)。

 相关资料
  • 在并发编程的传统线程模型中,线程之间的数据共享需要通过锁来保持一致性(consistentBalance),当数据产生变化时,还需要使用条件变量(condition variable)对各个线程进行通知。 某种程度上,Haskell 的 MVar 机制对上面提到的工具进行了改进,但是,它仍然带有和这些工具一样的缺陷: 因为忘记使用锁而导致条件竞争(race condition) 因为不正确的加锁顺

  • 问题内容: 我将eclipse用于Google Android开发。 我创建了一个库项目(在Android设置中),其中包括一个外部jar文件(参考库)。该库项目在另一个项目(将使用该库项目的实际项目)中引用。这是通过在Android设置下添加项目来完成的。 源代码可以编译,但是如果我想在设备上执行它,则将获取NoClassDefFoundError,该类 位于库项目中包含的jar文件中 。 编辑

  • 本文向大家介绍Python中的XML库4Suite Server的介绍,包括了Python中的XML库4Suite Server的介绍的使用技巧和注意事项,需要的朋友参考一下 在继续阅读本文之前,您务必要对我们在本专栏中将要讨论的一些技术有所了解。我们要使用的技术包括:可扩展的样式表语言转换(Extensible Stylesheet Language Transformations,XSLT)、

  • 本文向大家介绍详解Django中的form库的使用,包括了详解Django中的form库的使用的使用技巧和注意事项,需要的朋友参考一下 Django带有一个form库,称为django.forms,这个库可以处理我们本章所提到的包括HTML表单显示以及验证。 接下来我们来深入了解一下form库,并使用她来重写contact表单应用。 Django的newforms库 在Django社区上会经常看到

  • 我现在正在尝试让它运行在我的Android平板电脑使用处理Android模式。但是我得到了很多编译器错误说“找不到符号”。 我正在使用我使用https://github.com/Processing/processing-library-template创建的一些处理库。 这些库本身并不实际访问系统资源或调用处理库。或Java.util以外的任何其他外部Java。他们只是在操纵数据结构。 更新:进

  • 本文向大家介绍Android的Glide库加载图片的用法及其与Picasso的对比,包括了Android的Glide库加载图片的用法及其与Picasso的对比的使用技巧和注意事项,需要的朋友参考一下 Glide Glide是一个高效、开源、 Android设备上的媒体管理框架,它遵循BSD、MIT以及Apache 2.0协议发布。Glide具有获取、解码和展示视频剧照、图片、动画等功能,它还有灵活

  • 问题内容: 我使用 动画矢量 从 支持库23.2.0 ,就像这样: 我正在尝试设置动画“ pathData ”(将行彼此变形)。我的代码如下所示。 drawable / ic_done.xml: drawable / ic_done_animated.xml: 动画师/tick_path_animation.xml: Java代码: 它在 API级别21的 较新设备上运行良好,但在 API级别16

  • 问题内容: 谁能推荐我一个Java库来允许我通过URL进行XPath查询?我尝试JAXP失败。 谢谢。 问题答案: jsoup,Java HTML Parser非常类似于jQuery语法方式。