来自https://developer.mozilla.org/En/Gecko_Plugin_API_Reference:Scripting_plugins:
此API不是为了线程安全而设计的。此API的线程模型使得通过此API的所有调用都是同步的,并且从插件到此API中的方法的调用必须来自启动插件的线程,同样,浏览器中对此API中的方法的所有调用都是保证来自同一个线程。对此API的未来修订可能会提供一种机制,用于将调用从一个线程代理到另一个线程,以帮助从其他线程使用此API。
如果我想在我的插件中访问一个全局变量(在所有实例之间共享,甚至在不同的页面上共享),我是否需要锁定它,或者浏览器是否只使用一个线程与所有实例的插件进行通信?
答案 0 :(得分:1)
浏览器总是使用一个线程与所有实例的插件进行通信;你应该做同样的回报,永远不要从主线程以外调用任何NPN_函数。
请记住,如果您正在执行任何可能阻止主线程的任何,您将需要创建自己的线程,在这种情况下,您可能需要锁定;但是,仅适用于浏览器?不,你不需要它们。