Member-only story

Stackless Python

Elshad Karimov
2 min readApr 3, 2024
Photo by Kevin Canlas on Unsplash

Stackless Python is a significant fork of CPython that aims to eliminate the C call stack with the goal of achieving greater levels of concurrency and parallelism in Python programs. This change enables Python to run functions concurrently, especially useful in scenarios like game development, network programming, and other applications requiring high levels of concurrency.

The primary feature of Stackless Python is its support for microthreads, which it calls “tasklets.” These tasklets allow developers to achieve concurrency without the overhead associated with traditional operating system threads.

Example: Using Tasklets in Stackless Python

Here’s a basic example to illustrate the concept of tasklets in Stackless Python. In this example, we create two tasklets that print numbers in sequence. This simple demonstration shows how tasklets can switch execution between each other.

import stackless

def tasklet_function(id, count):
for i in range(count):
print(f"Tasklet {id}: {i}")
stackless.schedule() # This switches execution to the next tasklet.

# Creating two tasklets
t1 = stackless.tasklet(tasklet_function)(1, 10)
t2 = stackless.tasklet(tasklet_function)(2, 10)

# Running the tasklets
stackless.run()

In this example:

  • Two tasklets are…

--

--

Elshad Karimov
Elshad Karimov

Written by Elshad Karimov

Software Engineer, Udemy Instructor and Book Author, Founder at AppMillers

No responses yet