use*_*907 2 lisp multithreading sbcl common-lisp
我是lisp编程的新手.我正在使用sbcl.在程序线程的一部分创建为 -
(sb-thread:make-thread
(lambda ()
(progn
(sleep 0)
(setf c (+ a b))
(print "ADDITION:")
(print c))))
Run Code Online (Sandbox Code Playgroud)
我没有得到什么lambda()和progn(sleep 0)做什么,为什么它写在sb-thread括号内?
sb-thread:make-thread 采用函数来调用新创建的线程.
(lambda ()
(progn
(sleep 0)
(setf c (+ a b))
(print "ADDITION")
(print c)))
Run Code Online (Sandbox Code Playgroud)
是一个匿名函数.反过来progn创建一个程序块(在这种情况下不一定,因为lambda体是一个隐含的预测)并且(sleep 0)可能被用作"请在这里调用调度程序"(它本质上是一个无操作,睡眠0秒).