package Ġcom . ray w ender lich . broadcast channels Ċ Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . channels . Channel Ċ import Ġkotlinx . coroutines . channels . consume Each Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ @ Experimental Cor outines Api Ċ fun Ġmain () Ġ{ ĊĊĠ Ġval Ġfruit Array Ġ= ĠarrayOf (" Apple ", Ġ" Ban ana ", Ġ" P ear ", Ġ" G rap es ", ĊĠĠĠĠĠ Ġ" Str aw berry ") ĊĊĠ Ġval Ġkotlin Channel Ġ= ĠChannel < String >() ĊĊĠ Ġrun Blocking Ġ{ ĊĊĠĠĠ Ġ// ĠProducer ĊĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠ Ġ// ĠSend Ġdata Ġin Ġchannel ĊĠĠĠĠĠ Ġkotlin Channel . send ( fruit Array [ 0 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCon sum ers ĊĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠ Ġkotlin Channel . consume Each Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠ Ġprintln (" Consumer Ġ 1 : Ġ$ value ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠ Ġkotlin Channel . consume Each Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠ Ġprintln (" Consumer Ġ 2 : Ġ$ value ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠWait Ġfor Ġa Ġkey stroke Ġto Ġexit Ġthe Ġprogram ĊĠĠĠ Ġprintln (" Press Ġa Ġkey Ġto Ġexit ...") ĊĠĠĠ Ġread Line () ĊĊĠĠĠ Ġ// ĠClose Ġthe Ġchannel Ġso Ġas Ġto Ġcancel Ġthe Ġconsumers Ġon Ġit Ġtoo ĊĠĠĠ Ġkotlin Channel . close () ĊĠ Ġ} Ċ } Ċ