當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Julia bind方法用法及代碼示例


用法:

bind(chnl::Channel, task::Task)

chnl 的生命周期與任務相關聯。 Channel chnl 在任務終止時自動關閉。任務中任何未捕獲的異常都會傳播給 chnl 上的所有服務員。

chnl 對象可以獨立於任務終止顯式關閉。終止任務對已關閉的 Channel 對象沒有影響。

當一個通道綁定多個任務時,第一個終止的任務將關閉通道。當多個通道綁定到同一個任務時,任務的終止將關閉所有綁定的通道。

例子

julia> c = Channel(0);

julia> task = @async foreach(i->put!(c, i), 1:4);

julia> bind(c,task);

julia> for i in c
           @show i
       end;
i = 1
i = 2
i = 3
i = 4

julia> isopen(c)
false
julia> c = Channel(0);

julia> task = @async (put!(c, 1); error("foo"));

julia> bind(c, task);

julia> take!(c)
1

julia> put!(c, 1);
ERROR: TaskFailedException
Stacktrace:
[...]
    nested task error: foo
[...]

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Base.bind — Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。