当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

SlicedBread

简化 Java 多线程程序编写类库
授权协议 LGPL
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 袁文景
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

SlicedBread 是一个用于简化 Java 多线程程序编写的类库。

通过消除“经典”多线程钉书钉(即使用线程安全对象,锁和同步器的共享状态),而不是一组发送和接收不可变消息的单线程进程,可以做到这一点。

从某种意义上说,它受到了Erlang消息系统的启发,该消息系统本身就是基于Actors模型的。在另一本中,“实践中的Java并发性”的400多个页面显示了用标准Java编写和调试良好的多线程应用程序有多么困难。

SlicedBread已经在生产系统中使用了相当长的时间,并且没有重大问题,因此我认为这可以使整个社区受益,我正在分享它。

 相关资料
  • 本文向大家介绍java多线程编程之InheritableThreadLocal,包括了java多线程编程之InheritableThreadLocal的使用技巧和注意事项,需要的朋友参考一下 InheritableThreadLocal的作用: 当我们需要在子线程中使用父线程中的值得时候我们就可以像使用ThreadLocal那样来使用InheritableThreadLocal了。 首先我们来看一

  • 其实创建线程之后,线程并不是始终保持一个状态的,其状态大概如下: New 创建 Runnable 就绪。等待调度 Running 运行 Blocked 阻塞。阻塞可能在 Wait Locked Sleeping Dead 消亡 线程有着不同的状态,也有不同的类型。大致可分为: 主线程 子线程 守护线程(后台线程) 前台线程 简单了解完这些之后,我们开始看看具体的代码使用了。 1、线程的创建 Pyt

  • 手工编写一个JSP程序要比编写一个Servlet容易得多,只需要建立一个空的目录,然后在目录中建立JSP文件即可。 在<Tomcat安装目录>\webapps目录中建立一个myjsp目录,并在该目录中建立一个simple.jsp文件(文件要以UTF-8格式保存),simple.jsp的主要功能是使用Java代码显示服务器的当前时间,并输出name请求参数的值。simple.jsp的代码如下: <!

  • 本文向大家介绍简单分析Java线程编程中ThreadLocal类的使用,包括了简单分析Java线程编程中ThreadLocal类的使用的使用技巧和注意事项,需要的朋友参考一下 一、概述   ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocal

  • 如果以下代码在多线程应用程序中可以工作,您可以帮助我吗。 这是我的Java脚本,将由Nashorn评估 这就是我创建脚本引擎的方式 在使用Testng进行测试时,此操作不会出现任何错误 测试结果1-请注意,有些数据是重复的 但是,如果我添加"并行=true"到@DataProvider我的脚本开始失败 测试结果2-请注意,重复一些数据,以表明相同的参考编号可能在测试过程中随机失败 有人可以确认我是

  • 现在,你对Python 编程语言处理自然语言的能力已经有了体会。不过,如果你是Python或者编程新手,你可能仍然要努力对付Python,而尚未感觉到你在完全控制它。在这一章中,我们将解决以下问题: 怎么能写出结构良好、可读的程序,你和其他人将能够很容易的重新使用它? 基本结构块,如循环、函数以及赋值,是如何执行的? Python 编程的陷阱有哪些,你怎么能避免它们吗? 一路上,你将巩固基本编程结

  • 问题内容: 我编写了一个单一的Kafka使用者(使用Spring Kafka),该使用者从单个主题中读取内容,并且是使用者组的一部分。消耗完一条消息后,它将执行所有下游操作,并移至下一个消息偏移。我将其打包为WAR文件,并且我的部署管道将其推送到单个实例。使用部署管道,我可以将该工件部署到部署池中的多个实例。 但是,当我希望多个消费者作为基础架构的一部分时,我无法理解以下内容: 实际上,我可以在部

  • 我编写了一个Kafka消费者(使用Spring Kafka),它从单个主题读取并且是消费者组的一部分。一旦消息被消费,它将执行所有下游操作并继续下一个消息偏移量。我已将其打包为WAR文件,我的部署管道将其推送到单个实例。使用我的部署管道,我可能可以将此工件部署到我的部署池中的多个实例。 但是,当我希望多个消费者作为我的基础设施的一部分时,我无法理解以下内容- > 实际上,我可以在部署池中定义多个实