Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Alternatives to threads for maintaining GUI app responsiveness

by zentara (Archbishop)
on Sep 30, 2011 at 15:22 UTC ( #928834=note: print w/ replies, xml ) Need Help??


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
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

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://928834]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2014-12-21 20:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (107 votes), past polls