in reply to Approaches to concurrency

But in perl there are Threads, ithreads, threads, 5005threads

There are only ithreads!

  1. "Threads" and "5005threads" were the same, and are long since gone.

    Ignore these and the module that implemented them: Threads.

  2. "threads" and "ithreads" are the same thing.
    • "ithreads" means interpreter threads.

      That is, each system thread runs an independant copy of the interpreter, with all non-explicitly shared variables created by that thread, being confined to that interpreter.

      Ie. If you don't explicitly share it, each thread runs (almost) as a separate process would.

    • "threads" is the name of the module threads that implements ithreads.

      To share data between threads, you must use threads::shared also.

      The are some other ways also, but enough for now.


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".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."