Perl threads are not ready for Prime Time.
What does that mean? Who said it? And how will you know unless you try it?
threads::shared says it:
BUGS
bless is not supported on shared references. In the current
version, bless will only bless the thread local reference and
the blessing will not propagate to the other threads.
This is expected to be implemented in a future version
of Perl.
Does not support splice on arrays!
Taking references to the elements of shared arrays and hashes
does not autovivify the elements, and neither does slicing a
shared array/hash over non-existent indices/keys autovivify
the elements.
share() allows you to share $hashref->{key} without giving any
error message. But the $hashref->{key} is not shared, causing
the error "locking can only be used on shared values" to occur
when you attempt to lock $hasref->{key}.
DBI says it:
Threads and Thread Safety
(...)
Using DBI with perl threads is not yet recommended for producti
+on envi-
ronments. For more information see <http://www.perl-
monks.org/index.pl?node_id=288022>
liz says it on PerlMonks: 288022 (the node referenced by DBI above).
rt.perl.org says it.
Considering those references, I wouldn't feel comfortable using Perl ithreads in an application designed to accomodate high transaction volumes. I understand that there have been a lot of fixes to ithreads since 5.8.1 (current at the time of liz's post), but there's still no COW. That alone makes it very undesireable.
-Colin.
WHITEPAGES.COM | INC
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|