Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
多线程编程指南
使用Java虚拟线程时要避免的陷阱
Java 虚拟线程是 JDK 19 提供的一项新功能。它有可能在减少内存消耗的基础上提高应用程序的可用性、吞吐量和代码质量。 在本文中,让我们了解从 Java 平台线程切换到虚拟线程时应避免的陷阱:避免同步块/方法
异步 Rust 如何工作?
Rust 有一个新兴的异步系统。如果你的应用程序 IO 很重,你应该简单地“使用异步”,一切都会高效地工作。 您可以使用async fn,.await,让它在后台处理,而 CPU 会做一些有用的事情。然后你学习添加
使用JDK飞行记录器和一些SQL查找Java线程泄漏 - Gunnar Morling
配备 JDK Flight Recorder、JDK Mission Control 和 JFR Analytics,识别和修复 Java 应用程序中的线程泄漏正在成为一项相对简单的任务。 分析可疑线程泄漏的通常起点是
Rust 类型系统可以防止死锁吗?
在您最意想不到的时候,死锁潜伏在每个角落。我们可以使用 Rust 类型系统在编译时避免它们吗?也就是说,在编译时能证明没有死锁吗? 假设我们有两个互斥体(或互斥体,如果你喜欢的话)M1 和 M2。 如果线
C++ 协程的缺点
这篇博文旨在强调将代码库转向协程(例程)所带来的一些风险,我相信持续不良的协程使用可能会导致更不安全和更慢的程序。即使没有多线程,协程也应该像编写多线程代码一样受到怀疑,它仍然是异步的。 普通函数和堆栈如何工作
为什么在Rust中实现异步代码是特别困难?
使用异步 Rust 比 Go(goroutine)或线程要困难得多:举个例子,假设我们需要在 Web 服务中运行一些 cpu 密集型操作(假设线程阻塞 3 秒)。异步 Rust 与 Tokio 会阻塞任务,使用 spawn_blocking 与 Tokio 进行异步 Rust
PostgreSQL正在考虑将基于进程的模型迁移到线程模型
PostgreSQL 在大型系统上的扩展性不佳,主要是因为基于进程的模型都消耗了资源。并非所有数据库都有这个问题,如果不进行某种重大的架构更改,PostgreSQL 就无法停止这个问题。 PostgreSQL 数据库系统,它的历史可以追溯到
综合指南:如何确定 Java 线程池大小
Java 中的线程创建会产生显着的成本。创建线程会消耗时间,增加请求处理的延迟,并且涉及 JVM 和操作系统的大量工作。为了减轻这些开销,线程池发挥了作用。 在本文中,我们将深入研究确定理想线程池大小的艺术。经过微调的线程池可以从系统中提取最佳性能,并帮助
什么是CPU亲和力?何时使用?
CPU 亲和力(CPU affinity)是指在多处理器系统中,将一个进程或线程绑定到特定的CPU核心或处理器上,以限制其在系统中运行的位置。这样的做法可以带来一些性能上的优势,但也需要小心使用,因为不当的亲和性设置可能导致系统负载不均衡。 这是一种允许用
线程安全与并发区别
在并发编程中,"线程安全 "和 "并发 "是相关的概念,但它们有着不同的含义。 线程安全 如果一个类或方法可以同时被多个线程使用,而不会导致数据损坏或意外行为,那么这个类或方法就被认为是线程安全的。
Java 中使用 wait、notify、notifyAll快速指南
首先,你永远不应该直接使用wait, notify, 或notifyAll(除非你有充分的理由)。如果您需要执行多线程操作,请使用并发库。 使用 wait/notify/notifyAll 构建生产者/消费者是在谈论 Java 中的多线程时可能会遇
Java中semaphore信号量使用场景
在Java的并发API中,信号量是另一种同步工具,它同时控制访问特定资源或代码段的线程数量。 它管理一组许可证; 线程在继续之前必须获得许可。 如果许可可用,则线程获取它并继续执行。 如果没有,则线程将被阻塞,直到许可可用或
面试题:进程和线程有什么区别?
热门面试问题:流程和线程有什么区别? 为了更好地理解这个问题,我们先来看看什么是程序。程序是包含一组指令的可执行文件,被动地存储在磁盘上。一个程序可以有多个进程。例如,Chrome 浏览器会为每个标签页创建不同的进程。
Java 21 中的虚拟线程
在不断发展的编程语言和技术领域,Java 始终是构建健壮且可扩展的应用程序的基石。在每次迭代中,Java 都会引入新功能来应对现代开发挑战。Java 21为表带来了一个突破性的特性——虚拟线程。虚拟线程标志着 Java 并发方法的重大飞跃,并有望彻底改变开发人员处理并行性的方式。
Java中实现合并排序的三种方法
合并排序是一种流行的排序算法,它通过将数组或列表划分为较小的子数组,对它们进行独立排序,然后将它们合并在一起来有效地对数组或列表进行排序。它以其有效性、稳定性和处理庞大数据集的能力而闻名。 简单多线程通过在 Jav
Loom是Java中的超线程?
Loom 中的虚拟线程就是 JVM 上超线程(HyperThreading)的一个版本吗? 虚拟线程与超线程不同两者之间存在差异,最显着的是:超线程不需要像 Loom 那样进行任务协作,因此虚拟核心不能让其
Java中AtomicReference与volatile比较
在Java中,AtomicReference和volatile都是用于处理多线程编程中的可见性和原子性的工具,但它们有一些关键的区别。可见性:volatile关键字保证了变量的可见性。当一个线程修改了volatile变量的值,这个变化对其他线程是立即可见的。
线程安全Collections.synchronizedMap与并发ConcurrentHashMap之间区别
Collections.synchronizedMap()和ConcurrentHashMap都提供对数据集合的线程安全操作。 SynchronizedMap: 每个方法都使用对象级锁进行同步。因此,synchMap 上的 get
上页
下页
关闭