Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming.threads > #4875 > unrolled thread
| Started by | Horizon68 <horizon@horizon.com> |
|---|---|
| First post | 2019-01-17 13:34 -0800 |
| Last post | 2019-01-17 13:34 -0800 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.programming.threads
About Active Object Pattern.. Horizon68 <horizon@horizon.com> - 2019-01-17 13:34 -0800
| From | Horizon68 <horizon@horizon.com> |
|---|---|
| Date | 2019-01-17 13:34 -0800 |
| Subject | About Active Object Pattern.. |
| Message-ID | <q1qsdu$u83$7@dont-email.me> |
Hello, Read this: About Active Object Pattern.. Read about it here: https://madhuraoakblog.wordpress.com/2014/05/10/active-object-pattern/ As you have noticed i have "invented" a really powerful Threadpool with priorities that scales very well, and it implements ParallelFor() with priorities that too scales very well, also you can "easily" emulate an Active Object Pattern with it, so no need to implement the Active Object Pattern. More precision about my efficient Threadpool that scales very well, my Threadpool is much more scalable than the one of Microsoft, in the workers side i am using scalable counting networks to distribute on the many queues or stacks, so it is scalable on the workers side, on the consumers side i am also using lock striping to be able to scale very well, so it is scalable on those parts, on the other part that is work stealing, i am using scalable counting networks, so globally it scales very well, and since work stealing is "rare" so i think that my efficient Threadpool that scales very well is really powerful, and it is much more optimized and the scalable counting networks eliminate false sharing, and it works with Windows and Linux. You can download it from my website here: https://sites.google.com/site/scalable68/an-efficient-threadpool-engine-with-priorities-that-scales-very-well The Execute() method now supports passing a method or passing a procedure. I have also implemented a ParallelFor() that scales well, here is the method: procedure ParallelFor(nMin, nMax:integer;aProc: TParallelProc;Ptr:pointer=nil;pmode:TParallelMode=pmBlocking;Priority:TPriorities=NORMAL_PRIORITY); You can pass a parameter in Ptr as a allocated memory, and you can set pmode to pmBlocking so that ParallelFor() is blocking or to pmNonBlocking so that ParallelFor() is non-blocking. Look inside the test.pas example to see how to use it. Also i have implemented a portable and efficient Future: My portable and efficient implementation of a future in Delphi and FreePascal was updated to version 1.05 I have just enhanced it, and now it is working correctly and efficiently. You can download it from my website: https://sites.google.com/site/scalable68/a-portable-and-efficient-implementation-of-a-future-in-delphi-and-freepascal Thank you, Amine Moulay Ramdane.
Back to top | Article view | comp.programming.threads
csiph-web