Are range iterators thread safe?

Stefan Behnel stefan_ml at behnel.de
Thu Oct 20 05:22:18 EDT 2011


Steven D'Aprano, 20.10.2011 10:04:
> Using Python 3, are range_iterator objects thread-safe?
>
> I have tried this, and it seems to be safe:
>
> >>> from threading import Thread
> >>> x = iter(range(4))
> >>> def doit(x):
> ...     print("result =", next(x))
> ...
> >>> threads = [Thread(target=doit, args=(x,)) for i in range(4)]
> >>> for t in threads:
> ...     t.start()
> ...
> result = 0
> result = 1
> result = 2
> result = 3

The GIL ensures it's thread safe.

Stefan




More information about the Python-list mailing list