我发现自己有点夸张.
我有一个大型应用程序,它有谷歌的V8 JavaScript引擎.在UI线程上对V8引擎进行了一些调用.为了对每个人推荐的用户友好,一些长操作在一个单独的线程上运行,而不会挂起UI线程.但是,这些长时间运行的操作也会调用V8 javascript引擎.所以多线程调用V8.
事实是,V8似乎使用线程本地存储.这似乎使我的应用程序随机爆炸.这绝对属于"这可能到现在为止如何运作?" 错误.
在没有重新设计我的应用程序的情况下,我提出了一个丑陋,丑陋可怕的超级黑客攻击:我可以让V8认为它在不同的线程上运行吗?
换句话说,我第一次打电话给V8时,我记下了这个主题.然后,对于V8的所有其他调用,我以某种方式欺骗线程,因此线程本地存储/其他任何线程依赖的工作.
可以吗?它会起作用吗?我甚至认为这样一个骗人的黑客是愚蠢的吗?