Skip to main content
7 events
when toggle format what by license comment
Jul 12, 2020 at 20:33 comment added Brent QueueUserWorkItem falls into interdependency between threads.
Jul 11, 2020 at 20:45 comment added jamesqf You have a rather limited idea of what constitutes "intensive computations" :-) Really intensive computations may have threads that run for hours, days, or even longer, so the setup time is inconsequential.
Jul 11, 2020 at 17:55 comment added gidds Not just intensive computations. GUI applications are inherently multithreaded (unless they do no serious work, or freeze the UI whenever they're doing it). So are applications which read external data streams (video, sensor data, stock prices…), or which respond to incoming requests (web servers…).
Jul 11, 2020 at 17:21 comment added George Barwood @Brent The code does use the system thread pool ( System.Threading.ThreadPool.QueueUserWorkItem) however the time to queue a task for execution is still quite significant, typically several micro-seconds. This means a task that takes roughly this time or less ( and modern processors can do a lot of work in this time ) is not a good candidate for parallel execution.
Jul 11, 2020 at 15:55 comment added Brent You may want to try thread pools in the future. The overhead of multi threading can be reduced significantly if done carefully. The main bottleneck is interdependency between threads. The more you can isolate the work of each thread, the more leverage you'll get.
Jul 11, 2020 at 12:58 comment added Christophe Interesting! Indeed, it's not easy to transform increased multithreading into increased performance. Running more threads, even with multithreaded cores, reduces slightly the speed of each individual thread, while at the same time it can increase significantly the global throughput (see experiment here on SO). But the global throughput increases only if the processing task can be parallelized, which is not obvious for many algorithms that rely on sequential flow (example on SE).
Jul 11, 2020 at 10:39 history answered George Barwood CC BY-SA 4.0