bokeh.document.locking#

class UnlockedDocumentProxy(doc: Document)[源代码]#

包装一个Document对象,以便只暴露可以从未锁定的回调或线程中安全使用的方法。尝试以其他方式访问或更改Document将导致异常。

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

添加一个“下一帧”回调。

Parameters:

callback (可调用的)

remove_next_tick_callback(callback: NextTickCallback) None[source]#

移除一个“下一个tick”回调。

Parameters:

callback (可调用的)

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

包装一个回调函数,使其无需首先获取文档锁即可执行。

Parameters:

func (callable) – 要包装的函数

Returns:

一个被包裹的函数,可以在没有Document锁的情况下执行。

Return type:

可调用的

在未锁定的回调函数内部,修改curdoc()是完全不安全的。回调函数内部的curdoc()值将是Document的一个特别包装版本,该版本仅允许安全操作,这些操作包括:

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

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

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