Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
并发编程指南
Rust异步Asyn的特点
经常听到有人把Rust和其他语言描述为 "穿风衣的N种语言"。在Rust中,我们有Rust的控制流结构,我们有decl-macro元语言,我们有trait系统(它是图灵完备的),我们有cfg注释语言--这个名单还在继续。但是,如果我们把Rust看作是开箱即用的 "基础Rust",那么它就有一
基于虚拟线程Loom的执行器是Tomcat标准线程池的可行替代方案?
使用基于虚拟线程的执行器是 Tomcat 标准线程池的可行替代方案。就容器开销而言,切换到虚拟线程执行器的好处是微不足道的。 Tomcat 的标准线程池和基于虚拟线程的执行器之间性能差异的主要驱动因素是在线程池队列中添加和删除任务的争用。通过优化
conc:更简单编写Golang并发编程
对于 Go,并发性已经是一等公民,因此将并发代码添加到 Go 项目通常是一个很低的门槛。但是正确地做到这一点仍然很困难,而且我在并发 Go 代码中看到(并犯下)了很多错误,例如: 没有正确清理资源。 造成死锁。 由于单个 goroutine 中的 panic
服务器制约伸缩性的四种关键资源
计算机服务器有4种关键资源来驱动其功能。大多数可伸缩性问题都是在这些资源耗尽或分配不当时出现的。 内存(也称为RAM)在服务器中起着至关重要的作用,因为它临时存储数据,以供中央处理器(CPU)快速访问和处理。这允许服务器有效地同时处理多个任务和请求
Java并发编程如何防止死锁?
死锁可能是大家都不想遇到的问题,因为一旦程序出现死锁,如果没有外力的话,程序会因为资源竞争一直处于假死状态。死锁示例代码如下:
SpringBoot异步注释@Async的并发陷阱
在 Java 并发编程中实现异步函数之前,一般需要使用线程或线程池。线程池的底层也使用线程。要实现一个线程,要么继承Thread类,要么实现Runnable接口,然后在run方法中编写具体的业务逻辑代码。 Spring开发者为了简化
在 Project Loom 的虚拟线程上运行 Kotlin 协程
如果你想在Kotlin中运行异步或非阻塞代码,你必须在CoroutineScope中运行它。如果你要处理回调,你必须用suspendCancellableCoroutine将其转换为一个暂停的函数,这样你就可以在CoroutineScope中调用它。
Java使用默认线程池的陷阱问题
我们都知道JDK1.5之后提供了ThreadPoolExecutor类,可以用来自定义线程池。线程池有很多好处,比如: 减少资源消耗,避免频繁创建和销毁线程,可以直接复用已有线程。 提供速度,任务来了之后,因为线程已经存在,可以直接使用。 提高线程的可
Java并发编程中双重检查锁漏洞
单例模式在实际工作或面试中出现的频率更高,double-checked lock是单例常见实现:
Java并发编程中自旋锁会浪费 CPU 资源并导致错误
在并发编程中,自旋锁(spin locks )想必大家都不陌生。自旋锁一个非常经典的使用场景是CAS(即比较和交换),是一种无锁的思想(说白了就是使用了无限循环),用来解决更新数据的问题高并发场景。 atomic包下的很多类,如Atomic
BucketMap:golang快速并发 HashMap 开源实现
一个非常快速、线程安全、简单的 hashmap 实现。 在高度竞争的情况下,它比sync.Map和带mutexes的map快4-10倍以上;所需的堆空间是sync.Map的25%-50%,如果在堆中分配,所需的堆空间是默认map的66%-90%(默
使用Java虚拟线程实现IO高吞吐量与CPU密集型结合编程 - DZone
虚拟线程作为 Java 19 的一部分于 2022 年 9 月作为预览功能发布,它们是平台线程的轻量级版本,与传统平台线程不同,虚拟线程的内存占用很小。虚拟线程支持为每个工作单元模型创建一个线程,无论我们要处理多少任务,虚拟线程与 I/O 请求一起大放异彩,以支持并发高吞吐量
使用Kafka 和 Spring Boot 实现并发编程
本文将教您如何使用 Spring Boot 和 Spring for Kafka 为 Kafka 消费者配置并发。Spring for Kafka 的并发与Kafka 分区和消费者组密切相关。消费者组中的每个消费者都可以从多个分区接收消息。组内的消费者使用单个线程,而消费者组使用多个线程来消
什么时候使用 golang 而不是 nodeJs? - Reddit
对于几乎所有NodeJS也能工作的项目来说,Go都是更好的,因为Go的实际并发原语是内置的,而且容易使用。 Node仍然有(据我所知,如果我过时了,有人会纠正我)一个集中的事件循环结构,没有真正的多线程并发,JS代
Meta自适应LIFO概念
Facebook在队列中使用了自适应LIFO的概念: - 它们在正常情况下使用FIFO顺序 - 他们在高负荷下改用后进先出顺序 理由呢?通过在高负载下保持FIFO顺序,用户可能已经放弃了他们的请求。
Rust 类型系统可以防止死锁吗?
在您最意想不到的时候,死锁潜伏在每个角落。我们可以使用 Rust 类型系统在编译时避免它们吗?也就是说,在编译时能证明没有死锁吗? 假设我们有两个互斥体(或互斥体,如果你喜欢的话)M1 和 M2。 如果线
基于Http的ETags和If-Modified-Since实现乐观并发性
HTTP的特点是ETags和条件性请求,并启用乐观的并发性。 ETagETag(又称实体标记entity-tag)解决了 "丢失更新 "的问题,即一个API的两个客户端已经收到了一个实体的版本的数据。但是,
揭秘 Golang 通道、Goroutine 和最佳并发的测试源码
本github源码试图追问Golang 中的并发何时有意义,什么时候收益递减? 作者背景当我深入研究 Golang 时,我想回答这个问题:Golang 中的并发何时有意义,什么时候收益递减?
上页
下页
关闭