• 最近,虚拟线程的第二个预览版作为JEP 436的一部分发布。第一个预览版中引入的一些更改已经完成,我们离获得对虚拟线程的完全访问权又近了一步。在本文中,我们将尝试为
  • 本文介绍如何使用开源 Chronicle Queue创建巨大的持久队列,同时保持可预测和一致的低延迟。在本文中,目标是维护来自市场数据馈送的对象队列(例如,在交易所交易的证券的最新价格)。也可以选择其他业务领域,例如来自物联网设备的感官输入或读取汽车行业的碰撞记录信息。原理是一样的。
  • Rust 中的所有权是什么?Rust没有垃圾收集器,您需要显式分配和释放内存空间。当涉及大型代码库时,这很快就会变得乏味和具有挑战性。传统上,有两种管理内存的基本方法: 第一个是垃圾收集器;它主要用于从程序员那里抽象出内存管理概念的高级语言中。 第二种 icon
  • Uber已经采用Golang(简称Go)作为开发微服务的主要编程语言。我们的Go monorepo由大约5000万行代码组成(还在增长),包含大约2100个独特的Go服务(还在增长)。 Go使并发性成为一流的公民;在函数调用前加上go关键字,就可以 icon
  • Project Loom ( JEP 425 ) 可能是 Java 有史以来最受期待的新增功能之一。它对虚拟线程(或“绿色线程”)的实现保证了开发人员能够 icon
  • 当被问及 Go 最重要的特性时,许多人会谈论 Go 的简单性、C 互操作性、编译速度等。然而,Go 的最佳特性是在同步接口中编写异步代码的能力。作者给出了一个在 Go 与 Java 中发出的 HTTP 请求的示例,以展示 Go 如何非常有效地调度工作。 Go代 icon
  • 在这篇文章中,我们展示如何使用Loom实现类似Go语言的绿色虚拟线程。Project loom 仍处于预览阶段,这意味着 api 可能随时更改。如果您想自己尝试这些示例,可使用 icon
  • 在微服务时代的现代,我们与太多的服务进行通信以完成特定的工作。在这种情况下,线程大部分时间都处于阻塞状态。虽然现代操作系统有时可以处理数百万个打开的套接字,但我们无法打开许多通信通道,因为我们受到线程数量的限制。如果我们可以创建数百万个线程,并且每个线程都使用一个开放的套接字来处理外部通信呢 icon
  • c1, c2编译器线程是由Java虚拟机创建的,以优化你的应用程序的性能。偶尔,这些线程会倾向于消耗高CPU。在这篇文章中,让我们了解更多关于c1、c2编译器线程的情况,以及如何解决它们的高CPU消耗。 读完这篇文章后,像Hotspot JIT、c icon
  • Java 中Thread 一些方法被弃用:stop, suspend, resume 为什么被Thread.stop弃用?因为它本质上是不安全的。停止一个线程会导致它解锁它所锁定的所有监视器(当Thread icon
  • 线程是为了并行化计算密集型任务。然而,如今,许多应用程序都是 I/O(输入/输出)密集型应用程序。这样,线程就有两个重大问题: 他们使用大量(与其他解决方案相比)内存 启动和上下文切换的成本可以在大量(数万个)线程运行时感受到。 在实践中,这意味着通 icon
  • 下面是一个简单的 Web 服务器:u icon
  • 我们都知道JDK1.5之后提供了ThreadPoolExecutor类,可以用来自定义线程池。线程池有很多好处,比如: 减少资源消耗,避免频繁创建和销毁线程,可以直接复用已有线程。 提供速度,任务来了之后,因为线程已经存在,可以直接使用。 提高线程的可 icon
  • 单例模式在实际工作或面试中出现的频率更高,double-checked lock是单例常见实现: icon
  • 在本文中,您将学习如何使用 Java 创建 HTTP 服务器以及如何使用虚拟线程来处理传入的请求。我们将此解决方案与使用标准线程池的 HTTP 服务器进行比较。我们的测试将在大约 200 个并发请求的重负载下比较两种情况下的内存使用情况。 源码:  icon
  • 在Java中,有许多技术可以确保线程安全。你可以使用synchronized和Lock等关键字来锁定代码块。但它们有一个共同的特点,那就是锁定会对代码的性能产生一定的损失。 其实,JDK中还提供了另一种思路,即:以空间换时间。没错, icon
  • Spring 负责所有底层事务管理细节,并为不同的事务 API 提供一致的编程模型,但有多少人真正了解它在多线程环境中的行为方式?是否可以在多个线程中打开事务并写入数据? 让我们退一步思考一下EntityManager。EntityMana icon
  • 锁或互斥体(互斥)是最基本的并发原语之一。很难找到一个无法解释互斥锁的开发人员,至少在基本层面上是这样。然而,互斥锁远不止这些。他们可能是: 操作系统级(想想,一个 pthread 互斥锁)或用户级(想想,一个自旋锁), 公开悲观(阻塞)或乐观(非阻塞)锁定 API, icon