http://www.perlmonks.org?node_id=928834


in reply to Alternatives to threads for maintaining GUI app responsiveness

Last night in the Freenode Perl IRC channel I learned that threads are not the best way to do 'threaded' programming in Perl.

Why do you believe that? Why didn't you ask them what your alternative is? You can fork things off and pipe the results back to the parent. That is the way it was done in the old days. Threads were created to avoid that hassle.


I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh
  • Comment on Re: Alternatives to threads for maintaining GUI app responsiveness

Replies are listed 'Best First'.
Re^2: Alternatives to threads for maintaining GUI app responsiveness
by metaperl (Curate) on Sep 30, 2011 at 15:31 UTC
      Yeah sorry, I was temporarily stunned by the big lettering. :-) The answer is that you can't make 1 simple recipe that is best for all applications, even though everyone wants that silver bullet type of code. Its easy on the brain to have boilerplate code that is general purpose... you don't have to think as much.

      Sometimes forking is better, sometimes threads, sometimes just an event-loop is best. My rule of thumb is that if your app needs REALTIME communication between separate worker subs, use threads. If one worker dosn't care about what the other is doing, use a fork. Threads should be avoided when they are required to load big data sets, as the memory used will not be freed by the Perl process.... forking off memory hungry workers is best, as the OS will reclaim that memory when the forked process dies.

      Those are general guidlines.


      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku ................... flash japh