I wouldn't consider myself a beginner with threads and neither would I consider myself an expert, journeyman is probably about right. But, I do have about 35 years of experience with a multitude of different languages and have learned a few things that are true of every one of them. #1 - the less repetitive typing used the fewer the bugs, and #2 - I would rather stand on the shoulders of giants by using their knowledge than become a giant on my own.
That paragraph brings two thoughts to mind.
- The iThreads model used by Perl/threads.pm is quite different from every other threading model I've used going back the best part of 30 years.
As a bolt-on after-the-fact addition to Perl, it has its limitations and peculiarities. It can be really quite effective for many types of concurrent algorithms, but does require that you are aware of it quirks in order to get the best from it.
The approach it requires for many problems is often quite different from other threading models.
- The problem with most (actually all those i've tried) of the thread pooling modules on CPAN is that they haven't been written by giants.
For the most part they've been written as a first attempt by people for whom iThreads is their first real experience of threading of any form, and based upon very dubious analogies.
They are over-complex, badly tested and often written in isolation of any real application. Hence they may seem to run for some purely demonstration application, but fall in a heap when you try to use them for anything remotely practical.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".