Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
多线程编程指南
Java“虚拟线程”被提交到JEP草案
Java也终于要有纤程、绿色线程啦,虚拟线程能大幅减少编写、维护和观察高吞吐量并发应用程序的工作量,这些应用程序通过虚拟线程充分利用可用硬件,这是一种成本显着降低的轻量级用户模式线程实现。这是一个
该不该使用Reactive编程?先预览一下Loom项目中的Reactive模型和协程 - frankel
Java 15将发布Project Loom的第一个版本。我相信这将改变JVM。在本文中,我想深入探讨导致我相信这一点的原因。
比较Java与Node.js的并发性和性能- maxant
想象一个简单的市场,对同一产品感兴趣的买家和卖家聚集在一起进行交易。对于市场上的每个产品,对该产品感兴趣的买家可以形成一个有序的队列,按照“先到先得”的原则进行排序。然后,每个买家可以接近最便宜的卖家并进行交易,以卖家指定的价格从卖家那里购买尽可能多的产品。如果没有卖家以足够低的价格提供产品
Project Loom的用户模式线程或协程的性能是否一定很好? - Dukesletter
Project Loom继续前进,并引起了讨论:用户模式线程如何提供比OS线程更好的应用程序性能?OpenJDK的Project Loom的技术主管Ron Pres
ReadWriteLock读写锁升级的踩坑:Kotlin作弊,最好使用StampedLock - javaspecialists
在Java 5中,我们获得了ReadWriteLock接口,并带有ReentrantReadWriteLock实现。它具有明智的限制,我们可以将写锁降级为读锁,但不能将读锁升级为写锁。当我们尝试时,我们将立即陷入死锁。出现此限制的原因是,如果两个线程都具有读锁,那么如果两个线程都尝试同时升级
Java线程池newCachedThreadPool()与newFixedThreadPool()区别 | Baeldung
当涉及线程池实现时,Java标准库提供了很多选择。在这些实现中,固定线程池和缓存线程池非常普遍。
Rust语言异步编程简介 - Shakaib
我认为可以肯定地说,Rust最令人期待的语言功能之一终于落地了。我假设您一些有关Rust的语法和生态系统的基础知识。但是在深入研究编码部分之前,让我们用Async的定义介绍异步编程的一些基本概念。 异步定义:
抢拍神器的关键:优化提升Java线程局部随机数ThreadLocalRandom高并发技巧 - alidg
在本文中,探讨将Java随机数算法优化为高吞吐量和低延迟的各种技巧。技巧包括更有效的对象分配,更有效的内存访问,消除不必要的间接访问以及机械同情。(对于分布式环境的抢拍很重要)Java 7引入了,
JVM中的线程本地分配缓冲区TLAB是什么? - alidg
JVM在分配新对象时,将在专用于原始线程的TLAB(线程本地分配缓冲区)中分配该对象。由于每个线程只能写入自己的TLAB,因此不需要同步。TLAB默认情况下处于启用状态,但如果您疯了,可以随时使用-XX:-UseTLAB调整标志将其禁用。Java线程本地分配缓冲区可以用《
对响应式编程的怀疑 - lukaseder
响应式编程肯定很优雅,但是小伙子,即使对于最次要的任务,它是否也会增加认知负担……必须有一种更简单的方法来实现。 众说纷纭:基础架构逻辑/业务逻辑比率确实不好。让我想起了EJB 2.0实体。 我很
Project Loom抢先体验版
这些早期访问版本在GNU通用公共许可证版本2下提供,带有Classpath Exception。Linux / x64
使用CountDownLatch或循环屏障对多线程代码进行单元测试 -Xebia
随着处理器比以往包装更多的内核,并发编程已成为最有效利用它们的最前沿。但是,事实是并发程序的设计,编写,测试和维护要困难得多。因此,如果我们毕竟可以为并发程序编写有效且自动化的测试用例,则可以解决其中的大部分问题。 CountDow
Java并发中volatile和happen before是什么? - javarevisited
要了解happen before,需要首先了解如果多个线程访问同一个变量会发生什么问题?尤其是当一个线程写入该变量,而一个线程同时从该变量读取时。例如,假设我们有以下由线程T1执行的代码(请注意,整数变量y在x之前初始化):
如何在Java中使用同步 -Manusha
在本文中,您将学习为什么我们需要Java同步,如何编写同步的代码以及有关同步的更重要的要点。 为什么要使用同步?如果您的代码在多线程环境中运行,则需要同步在多个线程之间共享的对象。否则,可能会发生两种类型的
Java线程是耗费内存的 -DZone
这项研究清楚地表明,内存是在创建时分配给线程的,而不是根据线程的运行时需求分配的。超级工作线程和几乎休眠的线程都消耗相同数量的内存。现代Java应用程序倾向于创建数百个(有时数千个)线程。但是这些线程大多数都处于WAITING或TIMED_WAITING状态,并且什么也不做。鉴于线程在创建时
Java中volatile副作用:不使用CPU缓存
高速缓存位于在CPU和主内存之间,是一个速度更快的内存模块,其总体目的是提升性能。缓存通常是由具有不同大小和访问时间的几个层次级别组成。L1缓存是最小和最快的。L2更大而更慢。L3更大甚至更慢-但仍然比主内存快得多。用于特定数据结构的数据量越少,将其放入高速缓存的机会就越大,从而可以
给线程池取一个名称有助于调试 - bozho
我们的软件倾向于使用大量线程池-主要是通过java.util.concurrent.ExecutorService实现(通过创建Executors.new...。我们为各种异步用例创建线程池,并且可以在各处看到它们。所有这些执行器都有线程工厂。它隐藏在默认的工厂方法,但您可以提供线程工厂;如
探讨Java中的多线程概念 - foojay
解释Java编程语言中多线程的复杂性,让我们从快速概览和理解核心概念开始。 操作系统中的线程概念 线程:线程是轻量级进程,但它在多个方面与进程不同。线程的主要特征是它创建并发执行过程的感觉。它
上页
下页
关闭