首页 文章
  • 0 votes
     answers
     views

    Python 3.4 Comms Stream Delegate - 非阻塞recv和send - 数据从asyncio输出

    我正在将一个客户端服务器应用程序放在RPi上 . 它有一个主线程,可以创建一个与iOS设备通信的通信线程 . 主线程创建一个asyncio事件循环和一个sendQ和一个recvQ,并将它们作为args传递给comms线程中的commsDelegate main方法 . 我遇到的麻烦是当iOS设备连接时,它需要在数据可用时立即从此Python应用程序接收未经请求的数据,并且需要能够将数据发送到Pyt...
  • 4 votes
     answers
     views

    Java非阻塞IO选择器导致通道寄存器阻塞

    我有两个线程,我正在处理Java NIO的非阻塞套接字 . 这是线程正在做的事情: 线程1:调用选择器的select()方法的循环 . 如果有任何密钥可用,则会相应地处理它们 . 线程2:偶尔通过调用register()将SocketChannel注册到选择器 . 问题是,除非select()的超时非常小(比如大约100ms),对register()的调用将无限期地阻塞 . 即使通道配置为非阻塞,...
  • 0 votes
     answers
     views

    如何使用非阻塞延迟执行多个操作?

    我需要在屏幕上放置第一张图像,然后在1秒后放置第二张图像,然后再放置一秒钟后的最后一张图像 . 此外,这应该以非阻塞的方式完成:)在这种情况下你如何执行?考虑嵌套几个UIView animateWithDuration类方法,但我不需要任何动画,我只需要在每个步骤之后以直接的方式在屏幕上放置几个图像 . 更新:恕我直言,这是一个太重量级的方法来使用NSTimer这个简单的问题 . 我应该得到一个参...
  • 435 votes
     answers
     views

    python中subprocess.PIPE上的非阻塞读取

    我正在使用subprocess module启动子进程并连接到它的输出流(stdout) . 我希望能够在其stdout上执行非阻塞读取 . 有没有办法让.readline非阻塞或在我调用 .readline 之前检查流上是否有数据?我希望这是可移植的,或至少在Windows和Linux下工作 . 这是我现在如何做的(如果没有可用的数据,它在 .readline 上阻塞): p = subproc...
  • 99 votes
     answers
     views

    非阻塞I / O真的比多线程阻塞I / O快吗?怎么样?

    我在网上搜索了一些关于阻止I / O和非阻塞I / O的技术细节,我发现有几个人说非阻塞I / O比阻塞I / O更快 . 例如this document . 如果我使用阻塞I / O,那么当然阻塞的线程当然不会做任何其他事情......因为它被阻止了 . 但是一旦一个线程开始被阻塞,操作系统就可以切换到另一个线程而不会切换回来,直到阻塞线程有事情要做 . 因此,只要系统上有另一个需要CPU并且没...
  • 0 votes
     answers
     views

    在单个线程中使用带有Python的阻塞http库的并发http请求

    所以我有这个问题,我试图以一种特殊的方式解决,但我不确定它有多难实现 . 我想使用Python 3.4的asyncio / coroutines功能来触发许多并发的http请求,使用阻塞的http库,比如请求,或任何执行http请求的Python api,如boto for aws . 我知道run_in_executor()方法在线程/进程中运行任务,但我想避免这种情况 . 我想在单线程中使用L...
  • 0 votes
     answers
     views

    了解以非阻塞方式等待子进程的可重入父函数

    我在Linux上运行了一些C代码,其中重入,bool返回,父进程分叉子进程(当然只有一次),然后使用waitpid检查所述子进程的退出状态 . 如果子进程完成,则它返回到父进程,然后子进程退出,然后父进程看到此退出状态并返回true(然后转到其他代码) . 否则,如果子进程仍在运行,则父进程也将看到此异常并返回false,然后一次又一次地调用父进程,直到子进程完成并退出 . 换句话说,父进程使用W...
  • 3 votes
     answers
     views

    来自子进程标准输出的可靠非阻塞读取

    注意:我有一个进程将一行写入stdout(“print(”hello“))并等待raw_input . 我使用p = subprocess.Popen运行此进程,然后调用p.stdout.readline()....这无限期地阻塞 . 我设置shell = False ...为什么我不能读取第一个输出? p = subprocess.Popen(cmd, shell=False, stdout=s...
  • 3 votes
     answers
     views

    键盘 Logger 和鼠标跟踪器:我应该使用非阻塞I / O吗?

    我正在用C / C for Windows编写一个简单的键盘 Logger /鼠标 Logger . 为此,我使用Win32函数 LowLevelMouseProc 和 LowLevelKeyboardProc . 如果相关,这是一个带有我的代码的GitHub gist,它是超基本的:定义事件回调并将其与SIGINT的回调一起注册 . 我将在问题的最后添加一个摘要版本 . My questio...
  • 0 votes
     answers
     views

    使用AsyncHTTPConduit CXF(JAVA)的非阻塞Web服务客户端

    我正在尝试在JAVA中创建一个非I / O阻止Web服务客户端 . 我正在使用CXF的AsyncHTTPConduit . 但是,当有2个请求时,它似乎会创建一个新连接而不是重用它 . 它将创建新的动态端口来发送Web服务 . 源代码:public Dispatch getDispatcher(String alias,String namespace,String wsdlLocation,St...
  • 15 votes
     answers
     views

    Spring WebFlux WebClient的弹性和性能

    我只是通过示例PoC项目在简单的常见场景中测试一些阻塞/非阻塞解决方案 . 场景: 有一个非常缓慢的休息阻塞 endpoints - 每个请求花费200毫秒 . 还有其他 - 客户端应用程序,它调用此慢 endpoints . 我已经使用WebFlux测试了当前(阻塞)Spring启动客户端(tomcat),Spring Boot 2.0(netty) - WebClient,R...
  • 5 votes
     answers
     views

    试图了解同步队列的机制

    我试图阅读Synchronous Queue的实施对我来说这不是那么简单 . 它似乎使用链接列表,其中每个节点都与一个线程相关联 .核心部分使用旋转循环等待将任务放入队列中 .我想知道为什么使用自旋循环代替像 wait/notify 这样的东西?现在,由于这个恒定的自旋循环,其中一个核心消失了,对吧?我试图理解这一点,并粗略地了解同步队列的设计 UPDATE令我不安的是服务员线程如何开始/停止 ....
  • -1 votes
     answers
     views

    service方法调用不同步

    我有一个OrderServer类,我调用的服务OrderService连接到DB并获取数据 . 数据收集每1分钟进行一次 . OrderServer使用SocketIO与webapp通信 . 代码如下: export class OrderServer { // some required fields constructor() { console.log(&quot...
  • 2 votes
     answers
     views

    如何在Java中实现非阻塞期货

    Java Future对象用于获取由并行线程(Executors)执行的异步计算的结果 . 我们调用Future.get()方法并等待结果准备好 . 此示例显示了从Future检索结果的非阻塞方式 . java-implement-java-non-blocking-futures . NonBlockingExecutor executor = new NonBlockingExecutor(...
  • 2 votes
     answers
     views

    同时读取子进程stdout和stderr

    我试图在Python中运行一个冗长的命令,输出到stdout和stderr . 我想轮询子进程并将输出写入单独的文件 . 基于这个答案,我尝试了以下内容Non-blocking read on a subprocess.PIPE in python import subprocess from Queue import Queue, Empty from threading import Thr...
  • 1 votes
     answers
     views

    Python - 如何在subprocess.Popen中分别为stdin和stdout使用两个线程?

    我运行了一个命令行程序,可以接受任何以stdin中的“Enter”键结束的文本输入,并立即向stdout发送文本响应 . 现在我有一个包含数千个句子和每行一个句子的文件 . 我可以使用两个线程,一个用于逐行读取此文件并在运行命令行程序时将其发送到stdin,另一个线程用于捕获响应并写入另一个文件? 对于“发送到stdin”线程: def readSentence(inpipe, senlines)...
  • 1 votes
     answers
     views

    Python asyncio中的自定义非阻塞操作

    目前,asyncio Event Loop支持使用网络套接字,文件,子进程和信号进行非阻塞工作 . 对于其他操作,文档描述executing code in thread or process pools,但这似乎效率低得多(线程与协同程序) . 有没有办法引入额外的低级非阻塞操作,例如包装I / O大量的库调用?必须实现哪些原语?
  • 0 votes
     answers
     views

    如果SSL_ERROR_WANT_READ阻止了SSL_read(),我可以调用SSL_write()吗?

    我的程序是基于OpenSSL(阻塞模式)开发的,我想将它重构为非阻塞模式 . 它在具有SSL对象的线程中调用SSL_read(),并在具有相同对象的另一个线程中调用SSL_write() . 我从书"Network Security with OpenSSL"学习了OpenSSL非阻塞模式,这个模式有一个例子(data_transfer) . for (;;) { /*...

热门问题