Tagged articles

concurrency

2234 articles · Page 20 of 23
Programmer DD
Programmer DD
Nov 1, 2019 · Fundamentals

How to Break Java’s Deadlock: From Coffman Conditions to Practical Lock Strategies

This article explains why naive synchronized locks can cause deadlocks in Java, introduces the four Coffman conditions, and presents three practical solutions—acquiring all resources at once, using explicit locks with wait/notify, and ordering lock acquisition—to prevent deadlock in concurrent applications.

DeadlockLockscoffman-conditions
0 likes · 9 min read
How to Break Java’s Deadlock: From Coffman Conditions to Practical Lock Strategies
Alibaba Cloud Developer
Alibaba Cloud Developer
Oct 31, 2019 · Backend Development

Why Alibaba’s Wisp2 Makes Java Faster: A Deep Dive into Coroutines and Performance

This article explains how Alibaba’s Wisp2 brings Go‑like coroutine performance to Java by replacing OS thread scheduling, details its design, shows benchmark improvements over traditional thread‑pool models, compares it with Project Loom, and provides practical code snippets for enabling Wisp2 in production.

Asynchronous ProgrammingCoroutinesJava
0 likes · 16 min read
Why Alibaba’s Wisp2 Makes Java Faster: A Deep Dive into Coroutines and Performance
FunTester
FunTester
Oct 26, 2019 · Backend Development

Concurrent Testing Strategy for Updating Limited-Value Fields in Java APIs

The article presents a practical approach for load‑testing API endpoints that modify a database field with a small set of possible values, using per‑thread counters and modulo arithmetic to avoid duplicate parameters, and includes a complete Java demo implementation.

API testingJavaconcurrency
0 likes · 6 min read
Concurrent Testing Strategy for Updating Limited-Value Fields in Java APIs
Python Crawling & Data Mining
Python Crawling & Data Mining
Oct 21, 2019 · Fundamentals

Master Python Multiprocessing: From Fork to Process Pools

This article explains the concepts of processes and threads in Python, compares multi‑process, multi‑thread, and combined approaches, shows how to use fork, the multiprocessing module, process pools, subprocesses, and inter‑process communication with queues, and provides complete code examples with results.

IPCPythonconcurrency
0 likes · 15 min read
Master Python Multiprocessing: From Fork to Process Pools
Tech Musings
Tech Musings
Oct 20, 2019 · Backend Development

How Netty Supercharges ThreadLocal with FastThreadLocal – Inside the Code

This article dissects Netty's custom FastThreadLocal and FastThreadLocalThread implementations, showing how they replace JDK ThreadLocal with constant‑time indexed access, padding to avoid false sharing, and customizable initialization and cleanup to boost backend concurrency performance.

FastThreadLocalNettyPerformance
0 likes · 16 min read
How Netty Supercharges ThreadLocal with FastThreadLocal – Inside the Code
Programmer DD
Programmer DD
Oct 17, 2019 · Fundamentals

Why Simple Locks Fail When Protecting Multiple Related Resources

This article explains how using a lock that protects only a single resource can lead to incorrect behavior when multiple related resources are involved, demonstrates the problem with Java synchronized methods, and shows how a class‑level lock resolves the issue.

JavaLocksconcurrency
0 likes · 8 min read
Why Simple Locks Fail When Protecting Multiple Related Resources
Full-Stack Internet Architecture
Full-Stack Internet Architecture
Oct 13, 2019 · Fundamentals

Three Ways to Create Threads in Java: Extending Thread, Implementing Runnable, and Implementing Callable

This article explains three Java thread‑creation techniques—extending the Thread class, implementing the Runnable interface, and implementing the Callable interface—provides complete code examples for each, compares their advantages and disadvantages, and recommends the best practice for concurrent programming.

JavaRunnablecallable
0 likes · 6 min read
Three Ways to Create Threads in Java: Extending Thread, Implementing Runnable, and Implementing Callable
Beike Product & Technology
Beike Product & Technology
Sep 20, 2019 · Fundamentals

In‑Depth Analysis of Java ArrayList Implementation

This article provides a comprehensive overview and source‑code dissection of Java's ArrayList, covering its inheritance hierarchy, fields, constructors, addition, removal, modification, traversal, serialization, sorting, array conversion, thread‑safety considerations, and practical usage tips.

CollectionsData StructuresJava
0 likes · 16 min read
In‑Depth Analysis of Java ArrayList Implementation
Ziru Technology
Ziru Technology
Sep 19, 2019 · Backend Development

Why LongAdder Beats AtomicLong in High Contention: Deep Dive into Java’s Concurrent Counter

This article explains how java.util.concurrent.atomic.LongAdder provides a more efficient counting mechanism than AtomicLong under high contention, discusses its trade‑offs in space and precision, presents JMH benchmark results, and walks through the internal implementation details such as cells, CAS loops, and hash‑based distribution.

CASJMHJava
0 likes · 13 min read
Why LongAdder Beats AtomicLong in High Contention: Deep Dive into Java’s Concurrent Counter
ITPUB
ITPUB
Sep 17, 2019 · Fundamentals

How a General Deadlock Prediction Algorithm Enhances Linux Lockdep for Read‑Write Locks

This article explains the challenges of deadlock detection in Linux kernel lockdep, especially with read‑write locks, and presents a formally proven general deadlock prediction algorithm that models lock dependencies using a two‑thread abstraction, lemmas, and lock‑type promotion to reliably predict potential deadlocks.

AlgorithmLockdepconcurrency
0 likes · 17 min read
How a General Deadlock Prediction Algorithm Enhances Linux Lockdep for Read‑Write Locks
FunTester
FunTester
Sep 17, 2019 · Backend Development

Building a Multithreaded Java Web Scraper to Harvest 100k Records

After uncovering an unprotected API that allowed unlimited resource access, the author created a rough Java program that uses a fixed-size thread pool and CountDownLatch to fetch 100 000 items in parallel, retrieving 10 000 records per thread via HTTP GET requests.

JavaWeb Scrapingconcurrency
0 likes · 6 min read
Building a Multithreaded Java Web Scraper to Harvest 100k Records
Programmer DD
Programmer DD
Sep 15, 2019 · Fundamentals

Mastering Concurrency: The Three Core Pillars of Multithreaded Programming

Explore how concurrency can be broken down into three essential problems—division of work, synchronization/coordination, and mutual exclusion—using real‑world analogies and Java examples, and learn practical strategies like appropriate task sizing, thread communication, and locking mechanisms to write efficient, safe multithreaded code.

Javaconcurrencymultithreading
0 likes · 7 min read
Mastering Concurrency: The Three Core Pillars of Multithreaded Programming
Java Backend Technology
Java Backend Technology
Sep 15, 2019 · Backend Development

8 Ways to Enforce Thread Order in Java: From join to Semaphore

This article explores eight Java concurrency techniques—including join, main‑thread join, wait/notify, thread pools, Condition, CountDownLatch, CyclicBarrier, and Semaphore—to achieve sequential thread execution, complete with code examples and sample outputs for each method.

JavaSemaphoreThread Synchronization
0 likes · 22 min read
8 Ways to Enforce Thread Order in Java: From join to Semaphore
Big Data Technology & Architecture
Big Data Technology & Architecture
Sep 13, 2019 · Backend Development

Comprehensive Java Interview Topics: Language Basics, Collections, Concurrency, JVM, Design Patterns, MySQL, and Netty

This article compiles essential Java interview questions covering language fundamentals, core APIs, collections, concurrency mechanisms, JVM internals, design patterns, database concepts, and Netty networking, providing a thorough reference for candidates preparing for backend development positions.

Design PatternsJVMJava
0 likes · 12 min read
Comprehensive Java Interview Topics: Language Basics, Collections, Concurrency, JVM, Design Patterns, MySQL, and Netty
Didi Tech
Didi Tech
Sep 3, 2019 · Fundamentals

General Deadlock Prediction Algorithm for Linux Kernel Read‑Write Locks

The paper reverse‑engineers Linux’s Lockdep and introduces a universal deadlock prediction algorithm that treats mutexes as write‑locks of read‑write locks, using a two‑thread model and indirect‑dependency analysis to accurately detect potential deadlocks in complex rwlock scenarios.

DeadlockLockdepStatic Analysis
0 likes · 18 min read
General Deadlock Prediction Algorithm for Linux Kernel Read‑Write Locks
Node Underground
Node Underground
Aug 31, 2019 · Backend Development

Mastering Node.js Worker Threads: Boost CPU‑Intensive Tasks

This article explains the architecture of Node.js, the limitations of its single‑threaded event loop for CPU‑heavy workloads, and how the experimental worker_threads module provides a multi‑threaded solution, including core concepts, APIs, best practices, and sample code to improve performance.

CPU-intensiveNode.jsconcurrency
0 likes · 10 min read
Mastering Node.js Worker Threads: Boost CPU‑Intensive Tasks
FunTester
FunTester
Aug 12, 2019 · Backend Development

Detecting Double-Spend Bugs in API Exchanges Using Multithreaded Tests

This article explains the concept of a “double‑spend” bug encountered during a coin‑exchange API, describes a multithreaded testing approach in Java to reproduce the issue, analyzes the root cause of non‑atomic balance checks, and provides sample code illustrating the detection and prevention method.

API testingJavabackend
0 likes · 8 min read
Detecting Double-Spend Bugs in API Exchanges Using Multithreaded Tests
Java Captain
Java Captain
Aug 10, 2019 · Fundamentals

Top 10 Tricky Java Interview Questions and Answers

This article compiles ten of the most challenging Java interview questions, covering topics such as wait/notify placement, lack of multiple inheritance, operator overloading, string immutability, password storage, double‑checked locking singleton, deadlock creation and resolution, serialization pitfalls, and static method overriding, with detailed explanations and code examples.

DesignInterviewOOP
0 likes · 39 min read
Top 10 Tricky Java Interview Questions and Answers
Java Backend Technology
Java Backend Technology
Jul 29, 2019 · Backend Development

How Redis Powers Distributed Locks: Design, Pitfalls, and Solutions

This article explores the design and implementation of a Redis‑based distributed lock used since 2013, analyzes lock acquisition and release mechanisms, discusses common pitfalls such as expiration handling and race conditions, and presents possible improvements like Lua scripts and Redisson.

JavaRedisconcurrency
0 likes · 8 min read
How Redis Powers Distributed Locks: Design, Pitfalls, and Solutions
Java Backend Technology
Java Backend Technology
Jul 26, 2019 · Backend Development

Mastering ThreadLocal: When, How, and Best Practices in Java

This article explains the purpose and usage scenarios of Java's ThreadLocal, details its two main functions for storing thread context and ensuring thread safety, discusses garbage‑collection nuances, presents sample code with results, and outlines essential best‑practice guidelines for safe multithreaded development.

JavaThreadLocalconcurrency
0 likes · 8 min read
Mastering ThreadLocal: When, How, and Best Practices in Java
Sohu Tech Products
Sohu Tech Products
Jul 24, 2019 · Backend Development

Ten Years of Erlang: Evolution, Knowledge Ladder, and Future Directions

Over the past decade, Erlang has evolved from a niche functional language into a robust platform with powerful concurrency, fault tolerance, and a rich ecosystem, illustrated by its key applications, knowledge ladder, recent improvements, and future prospects for both Erlang and its Elixir community.

ElixirFunctional ProgrammingOTP
0 likes · 21 min read
Ten Years of Erlang: Evolution, Knowledge Ladder, and Future Directions
FunTester
FunTester
Jul 24, 2019 · Backend Development

Method‑Based Multithreaded Performance Testing Framework in Java

The article describes a Java performance testing framework that was refactored from a request‑based to a method‑based design, introducing a ThreadBase class and specialized adapters for HTTP requests, database queries, and concurrent execution, and discusses the advantages of code‑based concurrency and Groovy.

DatabaseGroovyJava
0 likes · 12 min read
Method‑Based Multithreaded Performance Testing Framework in Java
FunTester
FunTester
Jul 23, 2019 · Operations

How to Load Test Dubbo Queue APIs with JMeter and Java Concurrency

This article explains a practical approach to performance‑testing Dubbo add and delete methods of a message queue by pre‑generating payloads, using a thread‑safe LinkedBlockingQueue, and driving the calls with JMeter‑compatible Java code.

DubboJMeterJava
0 likes · 6 min read
How to Load Test Dubbo Queue APIs with JMeter and Java Concurrency
FunTester
FunTester
Jul 23, 2019 · Operations

Automating Complex API Tests with Groovy: A Modular Script Framework

This article presents a Groovy‑based modular framework for automating complex, interrelated API tests, detailing how to structure test modules, manage user credentials and tokens, and execute concurrent requests using custom thread handling, with full source code examples for the main driver, UserCenter, and base classes.

API testingAutomationGroovy
0 likes · 7 min read
Automating Complex API Tests with Groovy: A Modular Script Framework
FunTester
FunTester
Jul 23, 2019 · Backend Development

Method‑Based Multithreaded Performance Testing Framework in Java

The article introduces a Java performance testing framework that shifts from request‑centric to method‑centric design, provides a reusable ThreadBase class, and demonstrates concrete implementations for HTTP requests, database queries, and a concurrent executor to collect timing metrics, while also discussing the merits of coding versus tooling and Groovy advantages.

Javaconcurrencyframework
0 likes · 11 min read
Method‑Based Multithreaded Performance Testing Framework in Java
FunTester
FunTester
Jul 22, 2019 · Fundamentals

Why i++ Is Not Thread‑Safe: A Hands‑On Demo with vmlens

This article demonstrates how the non‑atomic i++ operation can cause race conditions in Java by using the vmlens tool to visualize thread interleavings, providing sample test code, Maven configuration, and an analysis of the resulting report.

JavaThread Safetyconcurrency
0 likes · 6 min read
Why i++ Is Not Thread‑Safe: A Hands‑On Demo with vmlens
FunTester
FunTester
Jul 22, 2019 · Fundamentals

Why a Simple Increment Isn’t Thread‑Safe: A Java Concurrency Demo

This article explains atomicity, thread safety, and race conditions in Java by showing how a volatile counter increment can produce nondeterministic results when accessed concurrently, complete with sample code and console output analysis.

Atomicityconcurrencyexample
0 likes · 4 min read
Why a Simple Increment Isn’t Thread‑Safe: A Java Concurrency Demo
FunTester
FunTester
Jul 22, 2019 · Backend Development

Thread Safety Issues When Combining Thread‑Safe Methods: A ConcurrentHashMap Example

Even when using thread‑safe classes like Java's ConcurrentHashMap, combining multiple thread‑safe methods into a single operation can still cause race conditions, as demonstrated by a test where two threads concurrently execute get‑and‑put logic, leading to an unexpected map value and a failed assertion.

ConcurrentHashMapJavaThread Safety
0 likes · 3 min read
Thread Safety Issues When Combining Thread‑Safe Methods: A ConcurrentHashMap Example
FunTester
FunTester
Jul 18, 2019 · Backend Development

Load Testing Dubbo Queue Service Using Java Concurrency and JMeter

This article describes how to conduct load testing of Dubbo queue service methods for adding and deleting messages using Java concurrency utilities and JMeter, including code examples for constructing test data, managing a thread‑safe LinkedBlockingQueue, and handling initialization challenges during repeated test runs.

DubboJavaMessage Queue
0 likes · 5 min read
Load Testing Dubbo Queue Service Using Java Concurrency and JMeter
FunTester
FunTester
Jul 16, 2019 · Fundamentals

Why Incrementing a Counter Isn’t Thread‑Safe in Java: A Hands‑On Demo

This article explains atomicity, thread safety, and thread‑unsafe behavior in Java, demonstrates a simple class with a volatile counter, runs two concurrent threads that increment it, shows the non‑atomic nature of i++, and analyzes why the final value may remain 1.

AtomicityJavaThread Safety
0 likes · 4 min read
Why Incrementing a Counter Isn’t Thread‑Safe in Java: A Hands‑On Demo
FunTester
FunTester
Jul 14, 2019 · Fundamentals

Why a Simple Increment Fails in Multithreaded Java: A Concurrency Demo

This article explains atomicity, thread safety, and race conditions in Java by walking through a concrete example where multiple threads increment a shared volatile variable, showing why the non‑atomic i++ operation leads to inconsistent results.

AtomicityJavaThread Safety
0 likes · 4 min read
Why a Simple Increment Fails in Multithreaded Java: A Concurrency Demo
JD Retail Technology
JD Retail Technology
Jul 12, 2019 · Databases

Understanding MySQL Lock Mechanisms, Transaction Isolation, and Concurrency Control

This article explains MySQL's lock types—including table and row locks, InnoDB's shared, exclusive, and intention locks—covers lock algorithms such as record, gap, next‑key, and insert‑intention locks, discusses deadlock and blocking issues, and details transaction management, isolation levels, and related configuration parameters.

ACIDInnoDBIsolation
0 likes · 39 min read
Understanding MySQL Lock Mechanisms, Transaction Isolation, and Concurrency Control
Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Jul 4, 2019 · Backend Development

Java Multithreading: Creation Methods, Lifecycle, Communication, Thread Pools, Locks, and Concurrent Containers

This article introduces Java multithreading fundamentals, covering four thread creation techniques, the five-stage thread lifecycle, communication methods, thread‑pool usage, common synchronization locks, and the main concurrent container classes for building high‑performance backend applications.

ConcurrentContainersJavaLocks
0 likes · 2 min read
Java Multithreading: Creation Methods, Lifecycle, Communication, Thread Pools, Locks, and Concurrent Containers
Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Jun 24, 2019 · Backend Development

Understanding Java Thread Locks: synchronized, ReentrantLock, Semaphore, and AtomicInteger

This article explains why multithreading is needed, outlines the challenges of concurrent access, and provides a detailed overview of four Java thread lock mechanisms—synchronized, ReentrantLock, Semaphore, and AtomicInteger—along with their characteristics, usage patterns, and performance considerations.

AtomicIntegerJavaSemaphore
0 likes · 9 min read
Understanding Java Thread Locks: synchronized, ReentrantLock, Semaphore, and AtomicInteger
Java Backend Technology
Java Backend Technology
Jun 24, 2019 · Backend Development

What I Learned from 2 Months of Java Backend Interviews: Tips & Insights

Over two months, I interviewed with multiple companies for Java backend roles, sharing detailed experiences from technical rounds—covering JVM, concurrency, distributed locks, databases, and system design—to highlight key questions, effective answers, and practical advice for succeeding in similar backend development interviews.

DatabaseInterviewJVM
0 likes · 17 min read
What I Learned from 2 Months of Java Backend Interviews: Tips & Insights
Alibaba Cloud Developer
Alibaba Cloud Developer
Jun 19, 2019 · Backend Development

What’s New in the Updated Java Development Handbook? 21 Rules, Lock Pitfalls, and Float Tricks

The latest Java Development Handbook introduces 21 new coding rules, revises over a hundred guidelines, and adds clearer examples on lock handling, switch‑null checks, floating‑point comparisons, collection conversions, and guard statements, while inviting developers to download the free PDF and join a live discussion.

JavaSwitchcode examples
0 likes · 9 min read
What’s New in the Updated Java Development Handbook? 21 Rules, Lock Pitfalls, and Float Tricks
Alibaba Cloud Developer
Alibaba Cloud Developer
Jun 19, 2019 · Backend Development

Explore the Updated Java Development Handbook: 21 New Rules & Key Code Pitfalls

The newly released Java Development Handbook introduces three major upgrades—21 new coding rules, over a hundred revisions, and richer examples—while offering practical guidance on lock handling, switch NPE avoidance, floating‑point comparisons, guard statements, and other common Java pitfalls, all available for free download.

Javacoding standardsconcurrency
0 likes · 9 min read
Explore the Updated Java Development Handbook: 21 New Rules & Key Code Pitfalls
Alibaba Cloud Developer
Alibaba Cloud Developer
Jun 17, 2019 · Fundamentals

5 Tricky Java Questions That Reveal Hidden Pitfalls

This article presents five Java code snippets—covering floating‑point comparison, wrapper equality, switch handling of null, BigDecimal construction, and lock usage—and challenges readers to identify the correct outcomes, exposing common misconceptions and best‑practice solutions.

BigDecimalInterview QuestionsSwitch
0 likes · 4 min read
5 Tricky Java Questions That Reveal Hidden Pitfalls
Sohu Tech Products
Sohu Tech Products
Jun 5, 2019 · Backend Development

Understanding RxJava2 Backpressure Strategies and Flowable Implementation

This article explains RxJava2's backpressure mechanisms, compares the five Flowable strategies (MISSING, ERROR, BUFFER, DROP, LATEST), demonstrates their behavior with practical experiments, and shows how to use Subscription and FlowableEmitter to build a demand‑driven, memory‑safe data pipeline.

FlowableReactive ProgrammingRxJava
0 likes · 20 min read
Understanding RxJava2 Backpressure Strategies and Flowable Implementation
21CTO
21CTO
May 24, 2019 · Backend Development

How Many Threads Can a JVM Actually Support? Limits, Factors, and Real-World Tests

The maximum number of Java Virtual Machine threads depends on CPU, operating system, JVM version, memory allocation, and configuration, with practical limits ranging from a few thousand on modest hardware to over ten thousand on high‑end systems, as demonstrated by several real‑world experiments.

JVMJavaMemory
0 likes · 5 min read
How Many Threads Can a JVM Actually Support? Limits, Factors, and Real-World Tests
Java Captain
Java Captain
May 24, 2019 · Backend Development

Understanding Java Blocking I/O, NIO, and AIO: From Per‑Connection Threads to Multiplexed and Asynchronous I/O

This article explains how traditional per‑connection thread handling (blocking I/O) wastes resources, then demonstrates Java NIO multiplexing and AIO callbacks with complete code examples, showing how they reduce thread usage and eliminate blocking while processing many simultaneous socket connections.

AIOIOMultiplexing
0 likes · 35 min read
Understanding Java Blocking I/O, NIO, and AIO: From Per‑Connection Threads to Multiplexed and Asynchronous I/O
Programmer DD
Programmer DD
Apr 28, 2019 · Operations

How to Achieve a 50,000‑User Load Test with JMeter & BlazeMeter

This guide walks you through the complete process of planning, scripting, locally testing, and scaling a load test to over 50,000 concurrent users using JMeter and BlazeMeter, covering script creation, sandbox configuration, engine sizing, cluster setup, and master‑slave orchestration.

BlazeMeterJMeterMaster‑Slave
0 likes · 12 min read
How to Achieve a 50,000‑User Load Test with JMeter & BlazeMeter
Full-Stack Internet Architecture
Full-Stack Internet Architecture
Apr 19, 2019 · Backend Development

Eight Little‑Known Java Facts You Might Not Know

This article explores eight obscure Java language facts—from the unused goto keyword and integer caching to Unicode‑escaped comments, flexible array declarations, hidden object creation with new String, JVM instruction reordering, and a study showing most Java code adds little value—providing concise explanations and code examples for each.

JavaMemoryPerformance
0 likes · 8 min read
Eight Little‑Known Java Facts You Might Not Know
Didi Tech
Didi Tech
Apr 18, 2019 · Fundamentals

Understanding Go's Syscall Mechanism and Runtime Interaction

Go’s syscall mechanism uses assembly‑implemented entry functions like Syscall and Syscall6 to invoke the kernel, while the runtime’s entersyscall and exitsyscall hooks notify the scheduler, allowing P resources to be released during blocking calls and handling privileged low‑level syscalls separately.

Goconcurrencylow-level
0 likes · 17 min read
Understanding Go's Syscall Mechanism and Runtime Interaction
21CTO
21CTO
Apr 11, 2019 · Backend Development

Mastering Java Concurrency: Threads, Locks, ThreadPools, and More

This comprehensive guide explores Java concurrency fundamentals—including processes, threads, daemon threads, thread states, synchronization methods, scheduling algorithms, wait vs. sleep, ThreadLocal, locks, volatile, CAS, Unsafe, thread pools, executor policies, blocking queues, Fork/Join, atomic classes, barriers, semaphores, deadlock, IPC, and interruption—providing essential knowledge for building high‑performance backend systems.

JavaLockThreadPool
0 likes · 26 min read
Mastering Java Concurrency: Threads, Locks, ThreadPools, and More
ITPUB
ITPUB
Apr 10, 2019 · Backend Development

Top 45 Java Performance Tips Every Developer Should Follow

This guide presents 45 practical Java performance optimization techniques—ranging from proper use of singletons and final modifiers to efficient collection handling and avoiding costly operations—helping developers write faster, more memory‑efficient code.

JavaMemory ManagementPerformance Optimization
0 likes · 19 min read
Top 45 Java Performance Tips Every Developer Should Follow
Architect's Tech Stack
Architect's Tech Stack
Apr 1, 2019 · Databases

Comprehensive Guide to Common Redis Issues and Their Solutions

This article provides an in‑depth overview of why Redis is used, its drawbacks, the reasons behind its single‑threaded speed, data types and use‑cases, expiration policies, memory eviction strategies, consistency challenges with databases, and practical solutions for cache penetration, cache avalanche, and concurrent key competition.

Data ConsistencyMemory ManagementPerformance
0 likes · 15 min read
Comprehensive Guide to Common Redis Issues and Their Solutions
Mafengwo Technology
Mafengwo Technology
Mar 28, 2019 · Backend Development

Boosting Search Performance with a Golang Concurrent Proxy

This article explains how Mafengwo transformed its search service by replacing serial function calls with a Golang‑based concurrent proxy, reducing average latency from 400‑500 ms to around 240 ms while improving scalability, fault tolerance, and resource utilization.

Search Architecturebackend developmentconcurrency
0 likes · 6 min read
Boosting Search Performance with a Golang Concurrent Proxy
Didi Tech
Didi Tech
Mar 28, 2019 · Backend Development

Distributed Locks: Concepts, Evolution, and Implementation Strategies

Distributed locks provide mutual exclusion across multiple nodes in scalable, reliable systems, and can be implemented via simple Redis SETNX/EX patterns, ZooKeeper’s EPHEMERAL_SEQUENTIAL znodes with watches, or Redisson’s advanced Java‑centric primitives, each offering distinct trade‑offs in simplicity, consistency, and feature richness.

JavaRedisRedisson
0 likes · 21 min read
Distributed Locks: Concepts, Evolution, and Implementation Strategies
Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Mar 14, 2019 · Backend Development

Understanding Java Thread Pools: Origins, Benefits, Risks, Principles, Configuration, and Implementations

This article explains the origin of Java thread pools, outlines their advantages and potential risks such as deadlocks and resource exhaustion, describes their internal states and processing flow, provides guidance on sizing for CPU‑ or I/O‑bound tasks, and reviews the four common thread‑pool implementations.

JavaPerformanceRisk Management
0 likes · 8 min read
Understanding Java Thread Pools: Origins, Benefits, Risks, Principles, Configuration, and Implementations
Architect's Tech Stack
Architect's Tech Stack
Mar 14, 2019 · Fundamentals

Comprehensive Java Interview Questions and Answers Overview

This article compiles a comprehensive set of Java interview questions covering core fundamentals, concurrency, thread management, locking mechanisms, database concepts, and JVM internals, providing concise prompts for candidates to prepare effectively for technical interviews.

InterviewJVMJava
0 likes · 6 min read
Comprehensive Java Interview Questions and Answers Overview
Java Captain
Java Captain
Mar 14, 2019 · Backend Development

Why Combining synchronized with @Transactional Causes Thread‑Safety Issues in Spring and How to Resolve Them

The article explains why using the synchronized keyword together with Spring's @Transactional annotation can lead to lost updates when many threads increment a database field, analyzes the underlying transaction‑proxy interaction, and presents a refactored solution that moves the lock to a separate service to ensure correct results.

Javaconcurrencyspring
0 likes · 7 min read
Why Combining synchronized with @Transactional Causes Thread‑Safety Issues in Spring and How to Resolve Them
Youzan Coder
Youzan Coder
Mar 6, 2019 · Databases

Why Concurrent Inserts Trigger MySQL Deadlocks: An In‑Depth InnoDB Lock Analysis

This article examines a MySQL 5.6 InnoDB deadlock scenario caused by concurrent batch INSERTs, detailing the table schema, test cases, lock acquisition phases, log analysis, lock compatibility matrix, and discusses why typical SQL‑level fixes are limited, suggesting index redesign or data sharding as mitigation.

DatabaseDeadlockInnoDB
0 likes · 11 min read
Why Concurrent Inserts Trigger MySQL Deadlocks: An In‑Depth InnoDB Lock Analysis
Java Captain
Java Captain
Feb 27, 2019 · Fundamentals

Understanding Java volatile: Memory Visibility, Ordering, and Interview Insights

This article explains the Java volatile keyword, covering its memory‑visibility and ordering guarantees, how it interacts with the Java Memory Model, why it does not ensure atomicity, and demonstrates typical interview‑style examples and code snippets such as flag signaling and double‑checked locking.

AtomicityJavaMemory Model
0 likes · 16 min read
Understanding Java volatile: Memory Visibility, Ordering, and Interview Insights
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 21, 2019 · Backend Development

Essential Netty Knowledge and Source Code Analysis

This article introduces the "Big Data Path to God" series, lists several Java advanced topics, and provides a comprehensive Netty guide covering BIO/NIO/AIO differences, Netty features, threading model, TCP packet handling, serialization choices, zero‑copy, performance aspects, and key source‑code components.

JavaNettyconcurrency
0 likes · 3 min read
Essential Netty Knowledge and Source Code Analysis
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 16, 2019 · Fundamentals

Understanding LinkedBlockingQueue: Implementation, Principles, and Usage

This article provides a comprehensive overview of Java's LinkedBlockingQueue, covering its FIFO behavior, internal linked‑list structure, concurrency controls with separate put and take locks, detailed method implementations, and a multithreaded example demonstrating safe usage versus non‑thread‑safe alternatives.

BlockingQueueDataStructureJava
0 likes · 14 min read
Understanding LinkedBlockingQueue: Implementation, Principles, and Usage
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 15, 2019 · Fundamentals

Understanding Java's ConcurrentSkipListMap: Overview, Principles, API, Source Analysis, and Example Usage

This article provides a comprehensive guide to Java's ConcurrentSkipListMap, covering its purpose as a thread‑safe ordered map, the underlying skip‑list data structure, a detailed list of its public methods, in‑depth source‑code analysis for add, remove, and get operations, and a multithreaded example demonstrating its correct behavior compared with TreeMap.

ConcurrentSkipListMapJavaSkip List
0 likes · 20 min read
Understanding Java's ConcurrentSkipListMap: Overview, Principles, API, Source Analysis, and Example Usage
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 15, 2019 · Backend Development

Deep Dive into Java 8 ConcurrentHashMap: Initialization, Treeification, Resizing, and Transfer Mechanics

This article explains the inner workings of Java 8's ConcurrentHashMap, covering how the table is initialized, how linked‑list bins are converted to red‑black trees, the resizing logic with tryPresize, and the multi‑threaded transfer process that moves entries to a larger table.

ConcurrentHashMapData StructuresJava
0 likes · 17 min read
Deep Dive into Java 8 ConcurrentHashMap: Initialization, Treeification, Resizing, and Transfer Mechanics
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 15, 2019 · Backend Development

Understanding CopyOnWriteArrayList: Introduction, Principles, API, and Source‑Code Analysis

This article introduces Java's CopyOnWriteArrayList, explains its dynamic‑array and thread‑safety mechanisms, lists the most important methods, provides detailed source‑code walkthroughs for constructors, add, get, remove and iterator implementations, and demonstrates its behavior with a multithreaded example compared to ArrayList.

CollectionsCopyOnWriteArrayListJava
0 likes · 14 min read
Understanding CopyOnWriteArrayList: Introduction, Principles, API, and Source‑Code Analysis
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 15, 2019 · Fundamentals

Deep Dive into Java HashMap and ConcurrentHashMap: Implementation, Operations, and Concurrency Mechanics

This article provides a comprehensive, step‑by‑step explanation of Java 7 HashMap and ConcurrentHashMap internals, covering their data structures, put/get algorithms, array initialization, resizing, segment locking, rehashing, and the concurrency considerations that ensure thread‑safe access.

ConcurrentHashMapData StructuresHashMap
0 likes · 22 min read
Deep Dive into Java HashMap and ConcurrentHashMap: Implementation, Operations, and Concurrency Mechanics
Meituan Technology Team
Meituan Technology Team
Feb 14, 2019 · Fundamentals

Understanding Java sun.misc.Unsafe: API, Usage, and Applications

The article explains Java’s sun.misc.Unsafe class, detailing how to safely obtain its singleton instance, describing its low‑level memory, CAS, thread, class, and object operations, and outlining common high‑performance use cases while warning about the significant risks of misuse.

JavaMemory Managementconcurrency
0 likes · 19 min read
Understanding Java sun.misc.Unsafe: API, Usage, and Applications
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 14, 2019 · Fundamentals

In‑Depth Analysis of Java HashMap Implementation and Usage

This article provides a comprehensive overview of Java's HashMap, covering its purpose as a key‑value store, the evolution of its internal data structures from JDK 1.7 to JDK 1.8, detailed explanations of core methods such as hash, put, get, resize, and practical example code illustrating common operations.

CollectionsHashMapJDK
0 likes · 18 min read
In‑Depth Analysis of Java HashMap Implementation and Usage
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 14, 2019 · Fundamentals

Java Lock Types and Their Implementation Details

This article provides a comprehensive overview of various Java lock mechanisms—including fair, non‑fair, reentrant, read/write, biased, lightweight, heavyweight, and spin locks—explaining their classifications, usage, underlying AQS implementation, and includes illustrative code snippets for each type.

AQSJavaLocks
0 likes · 22 min read
Java Lock Types and Their Implementation Details
Big Data Technology & Architecture
Big Data Technology & Architecture
Feb 14, 2019 · Backend Development

Deep Dive into Java ArrayList: Implementation, Core Methods, and Usage Patterns

This article provides a comprehensive overview of Java's ArrayList, covering its internal structure, key fields, constructors, core operations such as adding, removing, and searching elements, traversal techniques, fail‑fast behavior, and a comparison with Vector, all illustrated with original source code snippets.

CollectionsData StructuresJava
0 likes · 18 min read
Deep Dive into Java ArrayList: Implementation, Core Methods, and Usage Patterns