---
name: "MCE::Channel::Threads"
section: "3pm"
platform: "linux"
package: "libmce-perl"
version: "1.901-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MCE::Channel::Threads"
---

# MCE::Channel::Threads(3pm)

Channel for producer(s) and many consumers

## NAME

MCE::Channel::Threads - Channel for producer(s) and many consumers

## VERSION

This document describes MCE::Channel::Threads version 1.901

## DESCRIPTION

A channel class providing queue-like and two-way communication for threads only. Locking is handled using threads::shared.

The API is described in MCE::Channel.

- new

  ```
   use MCE::Channel;
   # The default is tuned for one producer and many consumers.
   my $chnl_a = MCE::Channel->new( impl => 'Threads' );
   # Specify the 'mp' option for safe use by two or more producers
   # sending or receiving on the left side of the channel (i.e.
   # ->enqueue/->send or ->recv2/->recv2_nb).
   my $chnl_b = MCE::Channel->new( impl => 'Threads', mp => 1 );
  ```

## QUEUE-LIKE BEHAVIOR

- enqueue

  - dequeue

  - dequeue\_nb

  - end

  ## TWO-WAY IPC - PRODUCER TO CONSUMER

- send

  - recv

  - recv\_nb

  ## TWO-WAY IPC - CONSUMER TO PRODUCER

- send2

  - recv2

  - recv2\_nb

  ## LIMITATIONS

The t/04\_channel\_threads tests are disabled on Unix platforms for Perl less than 5.10.1. Basically, the MCE::Channel::Threads implementation is not supported on older Perls unless the OS vendor applied upstream patches (i.e. works on RedHat/CentOS 5.x running Perl 5.8.x).

## AUTHOR

Mario E. Roy, \<marioeroy AT gmail DOT com\>
