csci2041/public-class-repo/SamplePrograms/Concurrency/prog1.ml
Michael Zhang 399845160c
f
2018-01-29 17:35:31 -06:00

17 lines
398 B
OCaml

(* From
http://www.cs.cornell.edu/courses/cs3110/2011sp/lectures/lec17-concurrency/concurrency.htm
*)
let prog1 n =
let result = ref 0 in
let f i =
for j = 1 to n do
let v = !result in
Thread.delay (Random.float 1.);
result := v + i;
Printf.printf "Value %d\n" !result;
flush stdout
done in
ignore (Thread.create f 1);
ignore (Thread.create f 2)