如何在OCaml中使用线程模块

Fri*_*Léo 1 multithreading ocaml

我想在OCaml中使用线程模块,但我无法打开它.例如,使用Unix我必须使用:#load "unix.cma";; 或者#load "graphics.cma";;用于图形模块.

但是当我尝试#load "thread.cma"它时会返回错误.

我该如何加载它?

Vir*_*ile 6

相反到unix.cmagraphics.cma,threads.cma(与最终的s:Thread仅仅是包含在该模块的一个threads.cma库)不直接OCaml中的标准库目录驻留,但在threads子目录,这样你必须将它添加到翻译的搜索路径.而且,threads.cma取决于unix.cma,所以你也必须加载它.总而言之,以下指令序列应该允许您threads.cma在解释器中加载(+指示它threads是标准库的子目录).

#directory "+threads";;
#load "unix.cma";;
#load "threads.cma";;
Run Code Online (Sandbox Code Playgroud)

请注意,如果你安装findlib#use "topfind";;(可以放在你的~/.ocamlinit文件中的指令),那么在解释器中使用线程只是键入的问题,#thread;;更不用说访问其他库变得更容易了.