|
|
|
|
|
by hot_gril
1016 days ago
|
|
Greenthreading implies concurrency, not parallelism, implemented in userspace rather than OS. Two Java/whatever greenthreads atop a single OS thread cannot run in parallel. It's switching contexts (as managed in userspace) during I/O waits, just like the JS event loop. You call Goroutines threenthreading, and some Golang users would disagree, but it is too. Some environments support "M:N" greenthreading, mapping multiple userspace threads to multiple (but fewer) OS threads that are running in parallel, but that's not a required feature of greenthreading. In this case, the OS is still doing the parallelism. And Python is not greenthreading because the concurrency comes from the OS, since each Py thread maps 1:1 to an OS thread. |
|
Well.. yes. Actually that makes sense!
I guess I just never thought of them as green threads in JS because you don't interact with them as an object like you can in other languages.