IME in many of these cases you're better off using asyncio instead.

-- Ryan
On Jun 20, 2019, 12:14 AM -0500, Matúš Valo <>, wrote:
Hi All,

Currently it is not possible to "kill" thread which is blocked. The rationale for this is handling situations when thread is blocked - e.g. when thread is quering DB when lock occurred on Database. In this case, the main thread has no way how to stop the blocked thread. Killing a thread is also popular question - see [1][2].

pthread library and Windows API contains mechanisms for forced termination of threads - see [3] and [4]. It is also simple to use them using ctypes library but after this action one need to "clean" internal data structures which is bad practice:

import time
import threading
import ctypes

def handler():
# blocked thread handler

t = threading.Thread(name='bar', target=handler)
libpt = ctypes.cdll.LoadLibrary("")

# This is nasty cleaning of internal python structures
del threading._active[t.ident]

Is if feasible to add canceling threads to python threading library? I am willing to help creating a patch (at least for linux).

Python-ideas mailing list --
To unsubscribe send an email to
Message archived at
Code of Conduct: