【发布时间】:2018-06-19 10:03:07
【问题描述】:
如何将当前线程的所有绑定传递给另一个线程?具体来说,我需要以下 sn-p 将2(不是1)打印到标准输出:
(defvar *foo* 1)
(let ((*foo* 2))
(bordeaux-threads:make-thread (lambda () (print *foo*)))) ;; prints 1
当然我可以手动复制*foo*的值,像这样:
(let ((*foo* 2))
(bordeaux-threads:make-thread
(let ((foo-binding *foo*))
(lambda ()
(let ((*foo* foo-binding))
(print *foo*)))))) ;; prints 2
但是有什么东西可以一次复制所有这些吗?
【问题讨论】:
标签: concurrency common-lisp sbcl dynamic-variables