Junior — Middle
Explain the concept of Green thread in the context of Python and tell about its differences from regular threads.
sobes.tech AI
Answer from AI
Green thread — is a thread managed by a virtual machine or runtime, not by the operating system. In Python, the concept of green threads is implemented through libraries such as gevent or eventlet.
Differences from regular OS threads:
- Green threads run in a single system thread, and switching between them occurs at the application level.
- They are lighter and faster to create and switch, as they do not require OS context switching.
- They do not utilize multiprocessing, as they operate within a single core.
- They are not affected by GIL (Global Interpreter Lock) issues in Python, as switching is manually managed.
Example of using green threads with gevent:
import gevent
def task(name):
print(f"Task {name} started")
gevent.sleep(1)
print(f"Task {name} completed")
g1 = gevent.spawn(task, 'A')
g2 = gevent.spawn(task, 'B')
g1.join()
g2.join()
Thus, green threads are suitable for I/O-bound tasks where high concurrency without OS overhead is important.