put!(::Channel, value)

put!(Channel, value)

Appends an item to the channel. Blocks if the channel is full.


In the Julia programming language, the function put!(::Channel, value)

Appends an item value to the specified Channel. If the channel is full, the function blocks until space becomes available.

  1. Put values into a channel:

    julia> ch = Channel(3);
    julia> put!(ch, 10);
    julia> put!(ch, 20);
    julia> put!(ch, 30);

    In this example, we create a channel ch with a capacity of 3. We then put three values (10, 20, and 30) into the channel using put!.

  2. Blocking behavior when the channel is full:

    julia> ch = Channel(2);
    julia> put!(ch, "apple");
    julia> put!(ch, "banana");
    julia> put!(ch, "orange");

    Here, we create a channel ch with a capacity of 2. After putting "apple" and "banana" into the channel, the third put! operation blocks until space becomes available in the channel.

Common mistake example:

julia> ch = Channel(1);
julia> put!(ch, "apple");
julia> put!(ch, "banana");
ERROR: TaskFailedException:
BoundsError: attempt to access Tuple{Channel{String}} at index [2]

In this example, the channel has a capacity of 1, so it can only hold one value at a time. When attempting to put "banana" into the channel after it already contains "apple", the operation fails with a BoundsError. To avoid this error, ensure that the channel has sufficient capacity or use non-blocking operations like put! with a timeout or put!! instead.

See Also

Channel, close, put!, take!,

User Contributed Notes

Add a Note

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field

Checking you are not a robot: