class Channel(T)
- Channel(T)
- Reference
- Object
Overview
A Channel
enables concurrent communication between fibers.
They allow communicating data between fibers without sharing memory and without having to worry about locks, semaphores or other special structures.
channel = Channel(Int32).new
spawn do
channel.send(0)
channel.send(1)
end
channel.receive # => 0
channel.receive # => 1
NOTE Although a Channel(Nil)
or any other nilable types like Channel(Int32?)
are valid
they are discouraged since from certain methods or constructs it receiving a nil
as data
will be indistinguishable from a closed channel.
Defined in:
concurrent/channel.crInstance Method Summary
-
#parallel(*, fibers : Int32 = System.cpu_count.to_i)
TODO better error handling * See
Concurrent::Stream
EXPERIMENTAL
Instance Method Detail
def parallel(*, fibers : Int32 = System.cpu_count.to_i)
#
TODO better error handling
*
See Concurrent::Stream
EXPERIMENTAL