【发布时间】:2022-08-06 08:40:05
【问题描述】:
函数run_counter 可以创建 m 个线程,每个线程从 0 计数到 n:
let run_counters m n =
let rec count x =
if x > n then ()
else ( Printf.printf \"%d\" x;
Thread.yield ();
count (x+1) )
in
Thread.create count 0
但是我不知道如何创建多个线程,我尝试使用计数器 m 编写递归调用,但出现错误:This expression has type t but an expression was expected of type unit
let run_counters m n =
let rec count x =
if x > n then ()
else ( Printf.printf \"%d\" x;
Thread.yield ();
count (x+1) )
in
let rec inc n =
if n = 0 then () else
inc (n-1);
Thread.create count 0;
-
错误信息是什么?
-
此外,您的代码格式非常糟糕,很容易导致掩盖错误。你应该考虑使用像 ocp-indent 或 ocamlformat 这样的工具来自动格式化代码,如果你不想手动这样做的话。
-
你能显示确切的错误吗?它应该告诉你哪个表达式是错误的。
-
顺便说一句,当我添加您的代码时,我遇到了语法错误
标签: multithreading parallel-processing functional-programming ocaml