bokeh.document.locking#

class UnlockedDocumentProxy(doc: Document)[source]#

包装一个 Document 对象,使其仅公开可以从解锁的回调或线程安全使用的方法。尝试以其他方式访问或更改 Document 将导致异常。

__init__(doc: Document) None[source]#
add_next_tick_callback(callback: Callback) NextTickCallback[source]#

添加一个“下一个时钟周期”回调。

参数:

callback (callable)

remove_next_tick_callback(callback: NextTickCallback) None[source]#

移除一个“下一个时钟周期”回调。

参数:

callback (callable)

without_document_lock(func: F) NoLockCallback[F][source]#

包装一个回调函数,使其在不首先获取文档锁的情况下执行。

参数:

func (callable) – 要包装的函数

返回:

一个被包装的函数,用于在没有 Document 锁的情况下执行。

返回类型:

callable

在解锁的回调内部,修改 curdoc() 是完全不安全的。curdoc() 在回调内部的值将是 Document 的特殊包装版本,该版本仅允许安全操作,即

只有这些可以在不获取文档锁的情况下安全使用。要对文档进行其他更改,您必须添加一个下一个时钟周期回调,并从第二个回调中对 curdoc() 进行更改。

尝试以其他方式访问或更改 Document 将导致引发异常。

func 可以是同步函数、异步函数或使用 asyncio.coroutine 修饰的函数。如果 func 是后两者中的任何一个,则返回的函数将是一个异步函数。