Concurrent computing
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Using either native language concurrency syntax or freely available libraries write a program to display the strings "Enjoy" "Rosetta" "Code", one string per line, in random order. Concurrency syntax must use threads, tasks, co-routines, or whatever concurrency is called in your language.
Ada
with Ada.Text_Io; use Ada.Text_Io; with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random; with Ada.strings.Unbounded; use Ada.Strings.Unbounded; procedure Concurrent_Hello is task type Writer is entry Start(Message : String); end Writer; task body Writer is Seed : Generator; Sleep_Time : Float; Words : Unbounded_String; begin Reset(Seed); Sleep_Time := Random(Seed); accept Start(Message : String) do Words := To_Unbounded_String(Message); end Start; delay Duration(Sleep_Time); Put_Line(To_String(Words)); end Writer; T1 : Writer; T2 : Writer; T3 : Writer; begin T1.Start("Enjoy"); T2.Start("Rosetta"); T3.Start("Code"); end Concurrent_Hello;