gpt4 book ai didi

sbcl 中的多线程

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:25 24 4
gpt4 key购买 nike

我是 lisp 编程的新手。我正在使用 sbcl。在程序线程的一部分中创建为-

(sb-thread:make-thread
(lambda ()
(progn
(sleep 0)
(setf c (+ a b))
(print "ADDITION:")
(print c))))

我不明白 lambda()progn(sleep 0) 的作用,以及为什么它写在 sb-thread 括号内?

最佳答案

sb-thread:make-thread 在新创建的线程中调用一个函数。

(lambda ()
(progn
(sleep 0)
(setf c (+ a b))
(print "ADDITION")
(print c)))

是一个匿名函数。反过来 progn 创建一个程序 block (在这种情况下不必要,因为 lambda 主体是隐式 progn)并且 (sleep 0) 可能用作“请”在此处调用调度程序”(它本质上是一个空操作,休眠 0 秒)。

关于sbcl 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29674836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com