Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
并发编程指南
Java虚拟线程不能使用同步synchronized锁!
Project Loom将虚拟线程的概念引入了 Java 运行时,并将在 9 月份作为JDK 21中的稳定功能提供。Loom 项目旨在将异步编程的性能优势与直接“同步”编程风格的简单性结合起来。 为了实现性能目标,任何阻塞操作都需要由 Loom 的
Java虚拟线程会杀死响应式编程?
投入时间和精力学习领先的反应式框架(如 Webflux、RxJava 等)是否是个好主意? 鉴于虚拟线程(Project Loom)在几次迭代后将在 JVM 中成为 GA。甚至 Spring 也引入了虚拟线程友好的 RestClient。<
LMAX Disruptor 4.0.0 发布
LMAX Disruptor是高性能线程间消息传递库: 现在最低 Java 版本为 11 问题#3
Rust不适合大并发?
对于大规模并发用户空间软件来说,Rust 可能不是一个好工具 (bitbashing.io): 本文讨论了使用异步 Rust 实现并发的挑战和限制。它解释了并行性和并发性之间的区别,以及如何将问题分解为单独的、独立的部分来提高性能。 作者探讨了线程和基于互斥锁的并发的
LMAX Disruptor:高性能线程间消息传递库
LMAX 过名为 Disruptor 的无锁 Java 框架实现低延迟高吞吐量交易。 MAX的目标是成为世界上最快的交易平台。为了实现这一目标,他们需要优化数据在系统各阶段之间传递的方式。他们发现使用队列会带来延迟,因此专注于优化该领域。
Java中列表List的可变性和不变性
以下Java代码示例List分可变的,不可变的两种: 1、可变ArrayList 是 List 的可变实现
基于虚拟线程的结构化并发
在本文中,我们将讨论并发系统的一些新模式,这些模式是由 Java 21 中的新虚拟线程、结构化并发 (JEP 453 )和范围值(JEP 446: Scoped Values)组成的新的结构化并发模式。 虚拟线程是在 Java 21 中引入的,作为
Java中CountDownLatch使用场景
在Java的并发API中,CountDownLatch是一个同步器,它允许一个或多个线程等待一组操作完成。 如果您正在开发一个服务器应用程序,该应用程序在开始处理请求之前需要初始化各种资源。这些资源可能是这样的: 加载配置文件 建立
使用Rust还是Go语言?
本文作者曾经写了一本关于 Rust 的书,但他建议不要在大多数项目中使用 Rust,原因有多种,包括其快节奏的开发、缺乏健壮的标准库以及异步编程的困难。 Rust 项目腐烂从 2020 年 1 月到 202
线程安全与并发区别
在并发编程中,"线程安全 "和 "并发 "是相关的概念,但它们有着不同的含义。 线程安全 如果一个类或方法可以同时被多个线程使用,而不会导致数据损坏或意外行为,那么这个类或方法就被认为是线程安全的。
Java 中使用 wait、notify、notifyAll快速指南
首先,你永远不应该直接使用wait, notify, 或notifyAll(除非你有充分的理由)。如果您需要执行多线程操作,请使用并发库。 使用 wait/notify/notifyAll 构建生产者/消费者是在谈论 Java 中的多线程时可能会遇
为什么Java引入List.of()方法?
Java 9 中引入的 List.of() 方法提供了生成不可变列表的便捷方法。 这是 JDK 开发人员为提供简洁而富有表现力的方法来处理集合而迈出的进步一步。 添加此方法背后的主要背景和灵感是跟随函数式编程语言的
Java中semaphore信号量使用场景
在Java的并发API中,信号量是另一种同步工具,它同时控制访问特定资源或代码段的线程数量。 它管理一组许可证; 线程在继续之前必须获得许可。 如果许可可用,则线程获取它并继续执行。 如果没有,则线程将被阻塞,直到许可可用或
面试题:进程和线程有什么区别?
热门面试问题:流程和线程有什么区别? 为了更好地理解这个问题,我们先来看看什么是程序。程序是包含一组指令的可执行文件,被动地存储在磁盘上。一个程序可以有多个进程。例如,Chrome 浏览器会为每个标签页创建不同的进程。
Java中实现合并排序的三种方法
合并排序是一种流行的排序算法,它通过将数组或列表划分为较小的子数组,对它们进行独立排序,然后将它们合并在一起来有效地对数组或列表进行排序。它以其有效性、稳定性和处理庞大数据集的能力而闻名。 简单多线程通过在 Jav
Polyjuice:通过并发控制动态学习实现高性能事务
Polyjuice 专为单节点多核设置而设计。它假设所有事务类型都是事先已知的,并且可以作为存储过程运行(请参阅下面的策略表部分)。它不支持 MVCC,因为它是在
并发ConcurrentSkipListSet与线程安全Collections.SynchronizedSet()区别
ConcurrentSkipListSet是SortedSet的并发版本,当然TreeSet也可以通过Collections.SynchronizedSet(new TreeSet())实现,这两者有什么区别? 下面这段ChatGPT代码:
GoRoutine和通道并发教程
GoRoutine 是一个与其他 goroutine 同时执行的函数。 我们使用 goroutines 来启动多个线程,这有助于我们实现并发性。并发性是指程序在重叠的时间段内独立运行多个任务的能力。
上页
下页
关闭