bokeh.document.locking#
- class UnlockedDocumentProxy(doc: Document)[源代码]#
包装一个Document对象,以便只暴露可以从未锁定的回调或线程中安全使用的方法。尝试以其他方式访问或更改Document将导致异常。
- 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是后两者中的任何一种,返回的函数将是一个异步函数。