Concurrent Programming in Python

Modern Python has come up to free-threaded version. We can achieve real multi-thread programming in Python. Programmers need to be more careful. Generally speaking, multi-thread is easier than multi-process since resource-sharing is straightforward because all threads are in one process. Python offers lots of thread synchronization and coordination primitives! Race Condition and Atomicity Race Condition is a result of uncontrolled access to shared resources. When the wrong access pattern happens, something unexpected occurs. Atomicity is the key to avoid race conditions. If an operation is atomic, no other thread can interrupt it mid-way. It either hasn’t started, or it is completely finished. ...

March 16, 2026

Built-in Data Structures and Algorithms in Python

It’s very important to design or choose the proper data structure and algorithm for various programming tasks. Even when we are using high-level programming language such as Python, it’s still crucial in terms of time and space complexity. In this post, I’ll try to summary the built-in data structures and algorithms in Python as a recap and reference. There are so many details which couldn’t be covered in this post, please refer to Python’s official documents. ...

July 18, 2025

Backtracking Algorithm

Backtracking algorithm is an elegant way to realize nested loop using recursive to search the solution space for your problem, especially for those problems that the depth of nested loop could not be determined beforehand. In this post, I try to demonstrate how to understand and code backtracking algorithm step by step with lots of examples. Take Algorithm as Technology! What is Backtracking Algorithm? I would like to think of backtracking algorithm as a search method. Imaging you are in a forest and you need find a way out. There are multiple choices at each intersection, and you have no idea about which direction or path is right. So, you pick out one direction randomly or in any order you like and keep on going. If it is a dead end, you go back and choose another direction, otherwise you find a way out. During the whole process, there might be lots of “going back and choosing again” moments which is actually the spirit of backtracking. ...

June 18, 2025