• Akka 的新许可证是 Business Source License (BSL) v1.1,附加使用授权以涵盖 Akka 的一些开源使用,例如 Play Framework 的一部分。BSL 由 David Axmark 和 Michael Widenius 创建,并已被 MariaDB、
  • Uber已经采用Golang(简称Go)作为开发微服务的主要编程语言。我们的Go monorepo由大约5000万行代码组成(还在增长),包含大约2100个独特的Go服务(还在增长)。 Go使并发性成为一流的公民;在函数调用前加上go关键字,就可以
  • Project Loom ( JEP 425 ) 可能是 Java 有史以来最受期待的新增功能之一。它对虚拟线程(或“绿色线程”)的实现保证了开发人员能够 icon
  • 5,000,000 个持久连接,200,000,000 条消息,使用 Project Loom 的单个进程出现 0 个错误。Project Loom C5M 是一个使用OpenJDK Project Loom 虚拟线程在客户端和服务器 Java 应用程序中分别实现 500 万个持久连 icon
  • Build 19-loom+5-429 (2022/4/4):此构建基于 JDK 19的不完整版本。与之前的版本相比,没有任何AP icon
  • LMAX Disruptor 是 Java 中最好的库之一,用于构建具有无锁队列的有界队列。Hubspot 撰写了有关 LMAX Disruptor 如何帮助构建快速、线程安全的跟踪库的文章:HubSpot 的用例是单个进程中的多个线程需要协调以在高基数数据流中查找最频繁的项目。在这 icon
  • 让我们来看看在.NET生态系统中我们有哪些工具可以使用。在接下来的几节中,我们将介绍流行的框架选择。Orleans, Proto.Actor, Akka.Net, 和Dapr。我们将重点介绍它们的独特功能和方法。 Orleans</ icon
  • 线程通常很昂贵:操作系统没有办法准确知道一个线程需要多少堆栈空间,所以它分配的数量大约是一兆字节。 解决这个问题的方法是实现一种机制,即利用有限数量的操作系统线程,并在其之上处理大量的 "逻辑线程"。 icon
  • 使用 Spring、Pub/Sub、Dataflow、Redis、Reentrant Lock 模式和 guava 缓存构建实时视图计数服务以处理 20k tps 规模。 icon
  • WhatsApp和Phoenix已经展示了数以百万计的连接在监听一个单一端口。那么,基于TCP/IP协议的理论上的可能性是什么?任何人都可以在自己的机器上运行一个简单的Java实验。 Java实验内容点击标题 icon
  • Java开发人员通过将任务分解为多个子任务来管理复杂性。在普通的单线程代码中,子任务按顺序执行。但是,如果子任务彼此足够独立,并且有足够的硬件资源,则可以通过并发执行子任务来使任务运行得更快(延迟更低) 。例如,如果每个 I/O 操作都在自己的线程中执行,则由多个 I/O 操作的结果组成的任 icon
  • 在多台服务器分布在世界各地不同地区的情况下,为每台服务器实施速率限制器将导致两个主要问题: 不一致 竞争条件 在本文中,我们将探讨这两个主要问题,以及我们如何实施更好的策略来解决分布式系统的 icon
  • 并发性不是很直观的。你需要训练你的大脑来考虑当多个进程同时执行某个代码块时会发生什么。我经常遇到的问题有几个。 未能识别潜在的并发性问题。无论是初学者还是经验丰富的开发者,完全错过潜在的并发问题是很常见的。当这种情况发生时,并发问题最终导致bug, icon
  • 在Java中,有许多技术可以确保线程安全。你可以使用synchronized和Lock等关键字来锁定代码块。但它们有一个共同的特点,那就是锁定会对代码的性能产生一定的损失。 其实,JDK中还提供了另一种思路,即:以空间换时间。没错, icon
  • Extent-Local 被提议作为一种在线程之间共享数据的新方式,它比 ThreadLocals 更轻量、更不可变,它包含更不容易出错的语法,并且与虚拟线程很好地配合使用。 目标 易用性——提供一种在线程内和与子线程共享数据的编程 icon
  • 在考虑并发队列设计时,我想到了一个通用的、无锁的队列,它适合于32位整数。这个队列是 "通用 "的,因为一个单一的实现支持任何任意类型的元素,尽管它是用C语言实现的。它是无锁的,因为它保证了全系统的进度。它一次最多可以存储32,767个元素--对于必须始终保持约束的消息队列来说,这已经足够了 icon
  • 锁或互斥体(互斥)是最基本的并发原语之一。很难找到一个无法解释互斥锁的开发人员,至少在基本层面上是这样。然而,互斥锁远不止这些。他们可能是: 操作系统级(想想,一个 pthread 互斥锁)或用户级(想想,一个自旋锁), 公开悲观(阻塞)或乐观(非阻塞)锁定 API, icon