草庐IT

线程不安全

全部标签

javascript - 将 JavaScript 回调传递给在另一个线程中调用它的 FFI 函数是否安全?

我有一个C函数,它接受回调并在另一个线程上调用它:voidcall_in_new_thread(void(*callback)()){//spawnanewthreadandcall`callback`init...}我想通过Node-FFI从JavaScript调用这个函数,将一个JavaScript函数传递给它:varcallbackType='pointer'varlib=ffi.Library('mylib',{'call_in_new_thread':['void',[callbackType]],})varcallback=ffi.Callback('void',['voi

javascript - 单线程 Javascript 中的 AJAX 实现

如果Javascript不是多线程的,如何使AJAX请求异步?实现浏览器是特定的吗? 最佳答案 浏览器执行模型基于“事件循环”的概念。只有一个线程服务事件(稍微过于简单化)。当事件发生时,处理程序将按顺序调用。Ajax只是一种引发特定事件的机制。设置HTTP请求是同步的,但只是设置它。浏览器通过在发生这种情况时触发事件来响应代表服务器返回数据的网络通信。现代浏览器稍微复杂一些,因为每个窗口都可能有自己的进程(或者一般来说,是其他一些系统级“线程”结构)。此外,新的“webworker”功能允许独立的类似线程的隔间同时运行。

javascript - 线程安全的数组删除

我知道可以从数组中拼接一个项目,或者用delete删除它。前一种方法可能会导致并发问题,例如如果一个线程正在遍历数组而另一个线程刚刚移动或拼接。如果在数组上使用forEach,则delete不会出现此问题,因为forEach会遍历数组中的空洞。但是,数组不能永远增长并且需要清除,可能会导致与拼接情况下相同的问题。听起来我需要锁定,但如果Javascript有任何功能,我会觉得很有趣。有什么想法吗? 最佳答案 关于您的确切问题:不,您不会遇到并发问题,因为JavaScript不是多线程的。即使您使用网络worker也不会有问题,因为没

javascript - PhantomJS 使用太多线程

我编写了一个PhantomJS应用程序来抓取我构建的网站并检查要包含的JavaScript文件。JavaScript类似于Google,其中一些内联代码加载到另一个JS文件中。该应用程序会寻找其他JS文件,这就是我使用Phantom的原因。预期结果是什么?控制台输出应该读取大量URL,然后判断脚本是否已加载。到底发生了什么?控制台输出将按预期读取大约50个请求,然后开始吐出此错误:2013-02-21T10:01:23[FATAL]QEventDispatcherUNIXPrivate():CannotcontinuewithoutathreadpipeQEventDispatcher

javascript - 使用 Autoform 插入并删除不安全

我一直在我的Meteor项目中使用Collection2和Autoform,让事情变得简单多了!但是,当我删除insecure时,它​​不再插入(Autoform提交按钮)。我预料到了!但是,我已经搜索过,但找不到使它起作用的标准方法?我在lib文件夹中定义了一个架构,我的Autoform作为模板中的快速表单。我知道我需要允许客户端插入(我不想这样做)或将其传输到服务器端(可能使用方法?)如有任何建议,我们将不胜感激!我正在寻找实现它的标准方法。 最佳答案 经过大量挖掘后找到了我自己的答案。为插入、更新和删除创建了允许规则:Post

javascript - 了解 JavaScript 计时器线程问题

我正着手开发一款javascriptMMORPG,它实际上可以顺利运行。目前,我创建了一个演示来证明我可以移动Angular色并让他们互相聊天,以及看到彼此实时移动。http://set.rentfox.net/现在Javascript计时器是我没有广泛使用的东西,但据我所知,如果我错了请纠正我,同时发生多个setIntervals并不能很好地工作b/c它全部打开一个线程。假设我想让10个不同的人通过使用带有setInterval的Sprite背景定位来向怪物发射火球——该动画需要10个setIntervals来重新绘制DOM以进行Sprite背景位置移动。那不是一辆大马车吗?我想知道

javascript - 单线程JavaScript下的动画

JavaScript是一种单线程语言,因此它一次执行一个命令。正在通过浏览器管理的WebAPI(用于事件处理的DOM,用于AJAX调用的XMLHttpRequest,用于setTimeout的WindowTimers)和事件队列来实现异步编程。到现在为止还挺好!现在考虑以下非常简单的代码:$('#mybox').hide(17000);console.log('Previouscommandhasnotyetterminated!');...有人可以向我解释以上内容的潜在机制吗?由于.hide()尚未完成(动画持续17秒),并且JS引擎正在处理它,并且它能够一次执行一个命令,因此它将转

javascript - JavaScript 线程和 Silverlight UI 线程之间是什么关系?

JavaScript是单线程的-Silverlight不是,但JavaScript和Silverlight之间的交互必须在SilverlightUI线程上执行。但是,SilverlightUI线程和JavaScript线程之间到底是什么关系呢?根据任何定义,它们是同一个线程,还是单独的线程,交互完全通过各自的事件循环执行,并在等待另一个线程时阻塞一个线程(例如,从Silverlight评估/调用JavaScript时)?换句话说,JavaScript能否与UI线程上的Silverlight操作同时执行(同一页面中托管的多个Silverlight实例能否同时运行其UI线程)?

javascript - 使用 Phonegap/WebWorks 的 Blackberry 线程过多

我正在使用Cordova/PhoneGap开发黑莓应用程序。我正在从服务器获取多张图像(map图block)。另外,我每60秒向它发送一次位置信息。但是,有时当我获取图像或发送信息时,我会收到错误消息。如果我在模拟器上(BB9930,OS7.0.0.318),我会收到一条AppError104:Toomanythreads消息,我的应用程序崩溃了。当我在设备(BB8520,操作系统5.0.0.592)上测试我的应用程序时,应用程序不仅崩溃,而且使BB重置。我看过其他有相同问题的帖子(如thisone、thisone或thisone)。但是,在使用Cordova/PhoneGap(Jav

javascript - 从 Javascript 检测损坏的锁图标(混合安全/不安全内容)

我正在努力使网站在HTTPS下完全正常运行。作为其中的一部分,我想确保我们永远不会“打破锁”。也就是说,我们不应该在SSL页面上加载非SSL内容,这可能会触发警告或其他指示器,具体取决于浏览器。为了验证情况是否如此,我想做两件事:编写Selenium测试来验证各种操作不会破坏锁。在JS中编写日志记录代码,在用户session期间检查锁是否被破坏,如果是则记录回服务器。有没有什么方法可以在JS中查看浏览器的HTTPS锁图标是坏了还是没坏?或者等价地,当前页面内容的混合/非混合状态? 最佳答案 您无法从JavaScript本身检测到这一