草庐IT

非阻塞

全部标签

c++ - 当 boost::asio::io_service 运行方法阻塞/解除阻塞时感到困惑

作为Boost.Asio的初学者,我对io_service::run()感到困惑.如果有人可以向我解释此方法何时阻止/解除阻止,我将不胜感激。文件指出:Therun()functionblocksuntilallworkhasfinishedandtherearenomorehandlerstobedispatched,oruntiltheio_servicehasbeenstopped.Multiplethreadsmaycalltherun()functiontosetupapoolofthreadsfromwhichtheio_servicemayexecutehandlers.

ruby - Ruby 是否支持没有第三方库的非阻塞 HTTP 请求?

我正在编写一个API来访问我的一台服务器上的资源。此API的一部分将发出HTTP请求。以良好软件设计的名义,我不希望我的API被阻塞。我是Ruby的新手,但在Java中我会提供一个异步API来返回响应的Futures。在JavaScript中,我会在我的方法中使用回调。我已经搜索了其他StackOverflow问题,并且https://github.com/eventmachine/em-http-request似乎做我想做的事。但是,我对依赖第三方库犹豫不决。是否有Ruby原生方法来解决这个问题,还是大多数开发人员依赖第三方库? 最佳答案

ruby - 用于异步非阻塞调用的 AWS ruby​​ sdk

我想发布要推送到awscloudwatch服务的自定义应用程序级指标。(http://docs.aws.amazon.com/sdkforruby/api/Aws/CloudWatch/Client.html#put_metric_data-instance_method),这样我就可以在AWS仪表板中看到系统和应用程序级别自定义指标的所有指标。这样我就不必使用第三方监控解决方案,如Graphite等。这里的问题是,我不希望我的应用程序因对推送指标进行阻塞调用而变慢。有什么方法可以使用awsruby​​sdk进行异步调用(即发即忘)?我知道JavaSDK中有异步客户端,但找不到ruby

ruby-on-rails - 如果数据库关闭,为什么准系统 Rails Controller 会阻塞?

我有一个不依赖于数据库的简单RailsController。classPingController但是,当数据库出现故障时,此Controller操作会阻塞。为什么会这样? 最佳答案 我认为可能有三个罪魁祸首。一个新的Rails应用程序具有以下中间件(Source):useRack::SendfileuseActionDispatch::StaticuseRack::Lockuse#useRack::RuntimeuseRack::MethodOverrideuseActionDispatch::RequestIduseRails:

javascript - ReactJS 中的非阻塞渲染

我正在学习ReactJS并尝试在其上构建一些应用程序。当我尝试修改我的状态和渲染时,我的页面卡住并且在我的组件变得巨大时渲染完成之前无法执行任何操作。我发现我可以使用shouldComponentUpdate来优化我的代码,但我的问题是:我可以使这个渲染过程成为非阻塞的吗?因此我可以告诉用户该页面正在处理一些重载执行,请稍候或者显示执行进度?或者如果用户可以取消渲染,例如,对于实时编辑器,如果用户编辑编辑器的内容,“预览”部分将停止渲染旧内容并尝试渲染新内容而不阻塞编辑器UI?这是重载示例代码:ReactTutorialvarBox=React.createClass({render:

windows - Matlab 在命令行上运行脚本并阻塞直到完成

有没有办法在命令行上运行matlab脚本并使matlab阻塞直到脚本完成?我可以像这样在命令行上调用脚本的单次执行:"C:\ProgramFiles\MATLAB\R2017a\bin\matlab.exe"-nodisplay-nosplash-nodesktop-r"run('C:\Users\myuser\profile.m');exit;"有几个关于在命令行模式下在matlab中运行脚本的问题,但所有这些问题都是关于通过cmd调用一次执行。他们没有解决按顺序多次执行脚本或按顺序执行多个脚本的问题,其中一个必须在另一个开始之前完成。Matlab:Runninganm-filefr

c# - 如何在不阻塞 UI 的情况下等待线程完成

我希望我的程序在下行之后等待frmProgressBarObj=PullMSI.ExtractByMSIName("products.txt",false);如上方法是通过StartProcessWithProgress()方法在内部调用线程。我希望该线程在//codelogic-2行被执行之前完成。同时,它不应该停止由frmProgressBar.UpdateProgress()完成的UI更新。我该怎么做呢?namespaceNS1{publicpartialclassfrmMain:Form{privatevoidbutton1_Click(objectsender,EventAr

还是分不清非阻塞赋值与阻塞赋值吗?

文章目录        组合逻辑与时序逻辑        赋值区别        总结组合逻辑与时序逻辑        在搞清这两种赋值方式的区别之前,我们需要先弄明白数字电路的分类。        先看看百度百科怎么说:        数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。        组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。而时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。

java - Vertx 单元测试阻塞主线程

在尝试通过测试类使用事件总线测试Vert.xverticle时,我遇到了“阻塞错误”。下面是Verticle和测试类:EventBusReceiverVerticle:publicclassEventBusReceiverVerticleextendsAbstractVerticle{publicEventBusReceiverVerticle(Stringname){this.name=name;}publicvoidstart(){vertx.eventBus().consumer("geo-service",(Messagehandler)->{{try{System.out.p

java - 有界、自动丢弃、非阻塞、并发收集

我正在寻找一个集合:是一个Deque/List-即支持在“顶部”插入元素(最新的项目到顶部)-deque.addFirst(..)/list.add(0,..)。它可以是一个Queue,但迭代顺序应该是相反的-即最近添加的项目应该排在第一位。是有界的——即限制为20件在达到容量时自动丢弃最旧的项目(那些“位于底部”,首先添加的项目)非阻塞——如果双端队列为空,检索不应阻塞。如果双端队列已满,它也不应阻止/返回false/null/抛出异常。并发-多个线程应该能够对其进行操作我可以采用LinkedBlockingDeque并将其包装到我的自定义集合中,在add操作中检查大小并丢弃最后一项