4 ms·
A better example would be var remoteResultA = callRemoteA(client); var remoteResultB = callRemoteB(f(remoteResultA)); Where handling a request means y
by emccue 3y ago
A better example would be
var remoteResultA = callRemoteA(client);
var remoteResultB = callRemoteB(f(remoteResultA));
Where handling a request means you have to make two http calls and those two calls have some order dependence. I.E. the result of one is used to construct the call to get the other.
What virtual threads give is the ability to write the code like I did above and still get ideal performance, as opposed to.
callRemoteA(client)
.then(remoteResultA -> callRemoteB(f(remoteResultA)))
.then(... your world lives here now ...);
Virtual threads are, from a language semantics point of view, the same as regular threads. Virtual threads map maybe 10000 "logical threads" to a handful (maybe 8 or so) actual operating system threads.
The big difference is that for each regular Thread you have exactly one backing Operating System thread.
- Tainnor 3y agoI agree that this would be a better example that would make more sense (and I also think that the reasoning you provided should be added as context to that code snippet).