I think we have different definitions then. A thread (green or not) is a context of execution which includes a stack. Saying that it&#x27;s not what it is seems like you might be thinking of stackless generators or something, which are most certainly not green threads as it&#x27;s a shallow control switch.<p>I&#x27;ve spent plenty of time with both green threaded languages and non-green threaded languages. There is a most definitely a difference. A lot of the critiques you&#x27;ve given apply to event loops as well.<p>For example, data access, sure you can&#x27;t write half a value but interleaving callbacks for work broken up into multiple stages is just as complex in terms of interleaved flows and would require the same careful treatments you would need in threaded code. The solution there is not to share data, even with events. I&#x27;m sure you implicitly do this yourself but there is nothing that makes either better or worse at it.<p>What you&#x27;ve failed to address are all of the trade-offs event loops have, like forgetful stack traces (and any effective fix keeps a stack of event flow contexts on the side, ironically).<p>In reality neither green threads or event loops are all that amazing on their own. Great runtimes need a whole lot more, so it seems kind of silly to sit on one side of the fence shouting that there are no downsides on your side of things because there obviously are plenty of problems worth solving better in both camps.