草庐IT

线程池隔离

全部标签

ruby - Sinatra 是多线程的吗?

Sinatra是多线程的吗?我在其他地方读到“默认情况下sinatra是多线程的”,这意味着什么?考虑这个例子get"/multithread"dot1=Thread.new{puts"sleepingfor10sec"sleep10#ActuallymakeacalltoThirdpartyAPIusingHTTPNETorwhatever.}t1.join"multithread"endget"/dummy"do"dummy"end如果我随后在另一个选项卡或浏览器中访问“/multithread”和“/dummy”,则在“/multithread”请求完成之前无法提供任何服务(在本

ruby - 如何知道 ruby​​ 中什么不是线程安全的?

startingfromRails4,默认情况下,一切都必须在线程环境中运行。这意味着我们编写的所有代码和所有我们使用的gem必须是threadsafe所以,我对此有几个问题:什么在ruby​​/rails中不是线程安全的?VS什么是ruby​​/rails中的线程安全?是否有已知线程安全的gem列表,反之亦然?是否有非线程安全示例的常见代码模式列表@result||=some_method?rubylang核心中的数据结构如Hash等线程安全?在MRI上,哪里有GVL/GIL这意味着一次只能运行1个ruby​​线程,除了IO,线程安全的变化对我们有影响吗?

ruby - ruby 有真正的多线程吗?

我知道使用greenthreads对ruby​​进行“合作”线程处理.如何在我的应用程序中创建真正的“操作系统级”线程以利用多个CPU内核进行处理? 最佳答案 更新了Jörg2011年9月的评论你似乎在这里混淆了两个非常不同的东西:RubyProgrammingLanguage和具体的线程模型之一Ruby编程语言的具体实现。那里目前大约有11种不同的Ruby实现编程语言,具有非常不同和独特的线程楷模。(不幸的是,这11个实现中只有两个实际上是准备好用于生产,但到年底这个数字可能会增加到四个或五个。)(更新:现在是5:MRI、JRub

javascript - JavaScript 是否为非阻塞 AJAX 生成线程?

一般的看法是JavaScript本质上是单线程的,但它可以异步运行。我想知道像这样的单线程模型如何处理非阻塞的AJAX请求?假设在浏览器中触发了一个非阻塞AJAX请求,但没有立即得到响应。如果事件循环不断检查响应,执行不会被阻塞吗?事件循环是否不断检查其状态并在没有响应时将任务“重新添加”到宏任务队列的后面?据我了解,Node.js会静默生成线程来处理访问磁盘、数据库、网络套接字等的I/O操作。浏览器中的JavaScript是否也会生成线程来处理AJAX?可以针对以下问题提出类似的问题:varimg=newImage();img.onerror=function(){alert('er

javascript - 我不完全理解 JavaScript 线程

在我深入探讨这个问题之前。让我声明,通过事件循环,我指的是http://en.wikipedia.org/wiki/Event_loop.这是浏览器实现的东西。有关更多信息,请阅读:http://javascript.info/tutorial/further-javascript-features/events-and-timing-depth.这个问题又难又长,所以,请耐心等待!我非常感谢所有的回答!所以。现在,据我了解,在JavaScript中只有一个主线程(在大多数浏览器环境中)。所以,代码如下:for(varcolor=0x000;color会产生一个从黑到白的动画,但是你看

javascript - Javascript进程是否具有多个执行线程?

背景我正在创建一个“地址簿”类型的应用程序。有很多条目要加载。一种想法是首先加载一小部分条目,以使用户入门,然后将其余条目排入队列,从而优先考虑用户单击的条目。(例如,如果他们单击以X开头的名称,请先加载名称,然后再处理其余队列)。这个想法是在初始化时(通过AJAX)加载初始数据集,然后在后台加载其余数据集(进行许多AJAX调用)。我的许多问题从概念上讲,我知道该怎么做,但是我不清楚Javascript引擎的局限性:执行顺序是否与浏览器相关?我尝试做的一件事是将一组条目(A,B,C等)排队,然后一次发出一大堆请求。这不是很成功。我收到了大部分回电,但没有按任何特定顺序回电。我需要我所有

javascript - 如何将数据从隔离作用域传递到父作用域?

我对使用AngularJS还很陌生,我想做的是创建一个指令并从其中的父范围调用函数。我能够做到这一点,但我似乎无法弄清楚如何通过表达式将数据从隔离范围传递到父范围。Angular开发人员指南中对此的解释有点令人困惑。指令:app.directive('myDir',function(){return{restrict:'E',template:'',scope:{parentProp:'=property',parentFunc:'&func'},link:function(scope,element,attrs){}}});标记:Controller:app.controller('

javascript - setInterval 的这种行为是否意味着 Javascript 中的多线程行为?

在使用javascript时我注意到了这件事。你可以使用vari=0;varstartingTime=newDate().getTime();setInterval("foo()",1);functionfoo(){i+=1;if($("#foodiv").text()==i){//wedetectedadoubledvalue(parallelexecution)$("#repdiv").append("[repetitionon"+i+"]");}$("#foodiv").html(i);$("#timediv").html(Math.floor((newDate().getTim

javascript - javascript中的线程(或类似的东西)

我需要让一段代码始终独立于其他代码运行。有没有办法在javascript中创建一个线程来运行这个函数?--为什么setTimeout对我不起作用我试过了,但它只运行了一次。如果我递归调用该函数,一段时间后它会抛出“太多递归”错误。我需要它每100英里运行一次(这是与嵌入式系统的通信)。--如您所问,这里有一些代码functionupdate(v2){//Iremovedtheuseofv2hereforsimplicitydump("update\n");//thiswilljustprintthestringsetTimeout(newfunction(){update(v2);},

JavaScript 和单线程

我总是听说JavaScript是单线程的;当JavaScript被执行时,它都在同一个全局mosh坑中运行,都在一个线程中。虽然这可能是真的,但单个执行线程可能会产生新线程,异步将数据返回主线程,对吗?例如,当发送XMLHttpRequest时,浏览器是否会创建一个新线程来执行HTTP事务,然后在XMLHttpRequest返回时在主线程中调用回调?定时器——setTimeout和setInterval怎么样?这些是如何工作的?这种单线程是语言的结果吗?在新的WebWorkers草案之前,是什么阻止了JavaScript的多线程执行? 最佳答案