<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
We’re talking about thread-per-request programs. In such programs, one thread has a concurrency of one (i.e. it handles one request, hence “thread-per-request”). As I explained, to get higher concurrency than what’s allowed by the number of OS threads you can
*either* use user-mode threads *or* not represent a unit of concurrency as a thread, but here we’re talking about the former. All that is covered in JEP 425.
<div class=""><br class="">
</div>
<div class="">— Ron<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 23 Jul 2022, at 00:25, Alex Otenko <<a href="mailto:oleksandr.otenko@gmail.com" class="">oleksandr.otenko@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="auto" class="">
<div class="">I think the single threaded example I gave speaks for itself. 1 thread can sustain various throughputs with various concurrency. I've shown a case with 99 concurrent requests, as per Little's law (and I agree with it), and it's easy to see how
to get any higher concurrency.
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">There are other laws at play, too, so my example latency wasn't random. But this has been long enough.</div>
<br class="">
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, 21 Jul 2022, 12:30 Ron Pressler, <<a href="mailto:ron.pressler@oracle.com" class="">ron.pressler@oracle.com</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;line-break:after-white-space" class="">Little’s law has no notion of threads, only of “requests.” But if you’re talking about a *thread-per-request* program, as I made explicitly clear, then the number of threads is equal to
or greater than the number of requests.
<div class=""><br class="">
</div>
<div class="">And yes, if the *maximum* thread count is low, a thread-per-request program will have a low bound on the number of concurrent requests, and hence, by Little’s law, on throughput.</div>
<div class=""><br class="">
</div>
<div class="">— Ron<br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 20 Jul 2022, at 19:24, Alex Otenko <<a href="mailto:oleksandr.otenko@gmail.com" target="_blank" rel="noreferrer" class="">oleksandr.otenko@gmail.com</a>> wrote:</div>
<br class="">
<div class="">
<div dir="auto" class="">To me that statement implies a few things:
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">- that Little's law talks of thread count</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">- that if thread count is low, can't have throughput advantage</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">Well, I don't feel like discussing my imperfect grasp of English.<br class="">
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, 19 Jul 2022, 23:52 Ron Pressler, <<a href="mailto:ron.pressler@oracle.com" target="_blank" rel="noreferrer" class="">ron.pressler@oracle.com</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;line-break:after-white-space" class=""><br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 19 Jul 2022, at 18:38, Alex Otenko <<a href="mailto:oleksandr.otenko@gmail.com" rel="noreferrer noreferrer" target="_blank" class="">oleksandr.otenko@gmail.com</a>> wrote:</div>
<br class="">
<div class="">
<div dir="auto" class="">
<div class="">Agreed about the architectural advantages.
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">The email that triggered my rant did contain the claim that using Virtual threads has the advantage of higher concurrency.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">> <span style="font-size:12.8px" class="">The throughput advantage to virtual threads comes from one aspect — their *number* — as explained by Little’s law. </span></div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Yes, and that is correct. As I explained, a higher maximum number of threads does indeed mean it is possible to reach the higher concurrency needed for higher throughput, so virtual threads, by virtue of their number, do allow for higher throughput.
That statement is completely accurate, and yet it means something very different from (the incorrect) “increasing the number of threads increases throughput”, which is how you misinterpreted the statement.</div>
<div class=""><br class="">
</div>
<div class="">This is similar to saying that AC allows people to live in areas with higher temperature, and that is a very different statement from saying that AC increases the temperature (althoughI guess it happens to also do that).</div>
<div class=""><br class="">
</div>
<div class="">— Ron</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>