Tag

Concurrency

0 views collected around this technical thread.

DeWu Technology
DeWu Technology
Jan 20, 2025 · Backend Development

Migrating Observability Compute Layer from Java to Rust: Ownership, Concurrency, Deployment, and Monitoring

The article details how moving a high‑throughput observability compute layer from Java to Rust—leveraging Rust’s ownership, zero‑cost async, and static binary deployment—cut memory usage by roughly 68%, CPU consumption by 40%, while outlining monitoring setup, concurrency model, and the steep learning‑curve challenges.

Backend DevelopmentConcurrencyMonitoring
0 likes · 18 min read
Migrating Observability Compute Layer from Java to Rust: Ownership, Concurrency, Deployment, and Monitoring
DaTaobao Tech
DaTaobao Tech
Aug 28, 2024 · Backend Development

Understanding Java Virtual Threads: Principles, Implementation, and Performance

Java virtual threads, introduced in JDK 21, decouple Java threads from OS threads by using continuations and a ForkJoinPool scheduler, allowing millions of cheap, blocking‑friendly threads that boost throughput and simplify concurrent code compared to traditional platform threads or reactive frameworks, as demonstrated by performance benchmarks.

ConcurrencyJDK21Java
0 likes · 23 min read
Understanding Java Virtual Threads: Principles, Implementation, and Performance
Java Tech Enthusiast
Java Tech Enthusiast
Feb 1, 2024 · Backend Development

Implementing a Robust Redis Distributed Lock with Spring Boot

The article shows how to build a reliable Redis‑based distributed lock in a Spring Boot 2.7 application by storing a unique UUID token, acquiring the lock with SET NX PX, releasing it atomically via a Lua script, and providing a clean Lock interface, factory component, and JUnit example.

ConcurrencyDistributed LockJava
0 likes · 13 min read
Implementing a Robust Redis Distributed Lock with Spring Boot
Java Tech Enthusiast
Java Tech Enthusiast
Jan 22, 2024 · Backend Development

Transitioning from Java to Rust: Performance, Concurrency, and Ecosystem Insights

Switching from Java to Rust can shrink binaries from dozens of megabytes to a few kilobytes, cut memory use and latency dramatically, and provide safer, built‑in concurrency and async support, while Java remains attractive for its low learning curve and massive library ecosystem, prompting developers to wrap Rust crates for Java‑like productivity as they adopt Rust long‑term.

ConcurrencyJavaRust
0 likes · 10 min read
Transitioning from Java to Rust: Performance, Concurrency, and Ecosystem Insights
Tencent Cloud Developer
Tencent Cloud Developer
Sep 14, 2022 · Backend Development

Understanding Go Stack Memory Management

The article explains how Go’s runtime manages goroutine stacks—starting with a 2 KB initial size, evolving from segmented to continuous stacks, detailing allocation via stackpool and stackLarge, expansion with runtime.newstack, shrinkage by the garbage collector, and the internal structures that coordinate these processes.

ConcurrencyGoMemory Management
0 likes · 15 min read
Understanding Go Stack Memory Management
OPPO Kernel Craftsman
OPPO Kernel Craftsman
Jul 15, 2022 · Mobile Development

Understanding User‑Space Locks on Android: Java, JUC, and Native Locks

The article explains Android’s user‑space locking hierarchy—from Java intrinsic and JUC locks to C++ std::mutex and pthread mutexes—detailing their internal structures, state transitions, and reliance on futex system calls for kernel‑level blocking, helping developers optimize synchronization across Java and native layers.

AndroidConcurrencyFutex
0 likes · 17 min read
Understanding User‑Space Locks on Android: Java, JUC, and Native Locks
Tencent Cloud Developer
Tencent Cloud Developer
Jun 28, 2022 · Backend Development

Implementing HTTP Request Retry, Hedging, and Circuit Breaking in Go

The article explains how to add reliable HTTP communication in Go by implementing retry logic with configurable backoff and jitter, resetting request bodies for POST retries, using hedged parallel requests, and integrating circuit‑breaker patterns to prevent overload and cascading failures.

ConcurrencyGoHTTP
0 likes · 16 min read
Implementing HTTP Request Retry, Hedging, and Circuit Breaking in Go
Tencent Cloud Developer
Tencent Cloud Developer
Jun 1, 2022 · Backend Development

Implementing a Distributed Delayed Message Queue in Go Using Redis

Implementing a distributed delayed message queue in Go with Redis uses a List for ready jobs and a Sorted Set for delayed jobs, periodically migrating expired entries atomically via Lua or transactions, providing O(1) enqueue/dequeue performance, retry support, and scalable concurrency for multi‑instance systems.

ConcurrencyDelayed MessagingDistributed Queue
0 likes · 12 min read
Implementing a Distributed Delayed Message Queue in Go Using Redis
Tencent Cloud Developer
Tencent Cloud Developer
May 23, 2022 · Cloud Computing

Web Functions Request Concurrency: Single vs Multi-Concurrency Performance and Cost Analysis

Web Functions, which support native HTTP/WebSocket protocols, traditionally handle each request with a dedicated instance, but this single‑request concurrency wastes resources and raises costs for I/O‑intensive workloads; enabling multi‑request concurrency—either static or dynamic—consolidates many requests onto fewer instances, cutting latency by up to 80 % and reducing billing by as much as 98.8 %.

ConcurrencyCost OptimizationWeb Functions
0 likes · 8 min read
Web Functions Request Concurrency: Single vs Multi-Concurrency Performance and Cost Analysis
Tencent Cloud Developer
Tencent Cloud Developer
May 9, 2022 · Backend Development

Error Handling and ErrGroup Patterns in Go

The article explains Go’s built‑in error interface, distinguishes errors, exceptions and panics, presents three handling patterns—classic returns, stateful objects, and functional deferred execution—shows how to wrap errors for context, and demonstrates using the errgroup concurrency primitive (including an extended version) for safe parallel processing.

Backend DevelopmentConcurrencyError Wrapping
0 likes · 15 min read
Error Handling and ErrGroup Patterns in Go
Tencent Cloud Developer
Tencent Cloud Developer
Dec 20, 2021 · Backend Development

Go Concurrency Basics, Libraries, and Best Practices

The article explains Go’s scheduler (M, P, G), demonstrates goroutine, channel, and select usage, covers sync primitives, atomic ops, context cancellation, singleflight, common pitfalls, debugging tools, and a channel‑driven chatroom case study, offering best‑practice guidance for efficient concurrent programming.

Best PracticesConcurrencyGo
0 likes · 21 min read
Go Concurrency Basics, Libraries, and Best Practices
Java Tech Enthusiast
Java Tech Enthusiast
Nov 18, 2021 · Fundamentals

Pessimistic and Optimistic Locks in Java: Theory and Code Examples

The article compares Java's pessimistic locking mechanisms such as synchronized blocks and ReentrantLock with optimistic approaches like version checks, CAS‑based AtomicInteger and custom spin locks, illustrating each method through counter examples and discussing their performance trade‑offs and limitations.

CASConcurrencyJava
0 likes · 11 min read
Pessimistic and Optimistic Locks in Java: Theory and Code Examples
vivo Internet Technology
vivo Internet Technology
Apr 21, 2021 · Backend Development

Understanding and Configuring Caffeine Cache in Java Applications

Understanding Caffeine Cache in Java involves using its builder for options like expiration, refresh, and weight‑based eviction, recognizing that configuring both expireAfterWrite and expireAfterAccess is redundant, grasping core methods such as isBounded, refreshes, computeIfAbsent, and avoiding common pitfalls like mis‑ordered expiration settings, blocking loaders, cache penetration, and mutable cached objects.

Cache ConfigurationCache EvictionCaffeine Cache
0 likes · 15 min read
Understanding and Configuring Caffeine Cache in Java Applications