nonblocking相关内容

UDP非阻塞写入故障

我研究过非阻塞的TCP,因为在非阻塞的情况下,读写都可能失败。如果没有可用的数据,则TCP非阻塞读取可能失败,如果对等端的TCP缓冲区已满(我希望TCP缓冲区大小为64K),则TCP写入可能失败。 同样,如果没有可用的数据,UDP读取(recvfrom)可能会失败。但是,UDP写入(sendto)的失败情况是什么?我认为在UDP写入中不会有任何非块错误。因为TCP WRITE发送数据并等待来自另 ..
发布时间:2022-08-02 11:21:27 其他开发

JOOQ能很好地处理Kotlin协程程序吗?

Kotlin coroutines和‘挂起函数’使程序员可以轻松地等待I/O结果,而无需停止线程(在I/O完成之前,该线程将被分配其他工作要做)。 jOOQ是Java首创的产品,用于以类型安全的方式编写和执行SQL,但本身并未显式使用Kotlin协程。 能否从Kotlin协同例程作用域调用jOOQ,以获得良好的编写和线程高效甚至IO期间的好处? suspend fun myQue ..
发布时间:2022-05-13 09:58:13 其他开发

使用SELECT()以非阻塞的方式从标准输入读取

我正在编写一个执行服务器-客户端关系的程序。 在程序中,我使用select()来获取客户端的请求,以及来自标准输入的用户请求(服务器后面的请求)。 看起来,select()对于客户端的请求运行良好,但似乎不响应来自stdin的输入。 而且,我没有从stdin成功地recv()。 有没有办法以非阻塞的方式从标准输入中获取输入?我尝试使用fgets()而不是select(),虽然我已经将fcnt ..
发布时间:2022-04-16 11:47:25 服务器开发

如何包装WebFlux应用程序的阻塞IO操作

我有一个Spring Boot/Webflow应用程序。我需要具有以下功能的异步REST终结点: 生成随机作业ID。 通过HTTP调用一个服务。 通过HTTP调用其他服务。 组合来自服务的响应并将结果写入文件。 将作业ID返回给客户端。 终结点应为异步。这就是为什么客户端不应该等待步骤2、3、4的结果。客户端应该立即收到作业ID。 目前我有以下实现: @Overri ..

C中的非阻塞udp套接字编程:我得到了什么?

我无法理解 recv()/recvfrom() 从非阻塞 UDP 套接字返回的内容. 比 TCP 更具体一点(如果我错了,请纠正我): 在缓冲区中有一些数据之前,阻塞套接字(TCP 或 UDP)不会从 recv() 返回.这可能是一些字节数 (TCP) 或一个完整的数据报 (UDP). 非阻塞 TCP 套接字返回 EWOULDBLOCK (linux)/WSAEWOULDBLOC ..
发布时间:2022-01-22 17:28:41 其他开发

在 Ruby 中执行非阻塞 I/O 的首选方式是什么?

如果说我想检索一个网页进行解析,但在 I/O 发生时不阻塞 CPU.有没有相当于 Python 的 Eventlet 库的东西? 解决方案 Ruby 最好的 HTTP 客户端库是 Typhoeus,它可用于以非阻塞方式并行执行多个 HTTP 请求.有阻塞和非阻塞接口: # 阻塞响应 = Typhoeus::Request.get("http://stackoverflow.com/")把 ..
发布时间:2022-01-18 18:03:59 其他开发

python:非阻塞子进程,检查标准输出

好的,我要解决的问题是: 我需要运行一个设置了一些标志的程序,检查其进度并向服务器报告.所以我需要我的脚本来避免在程序执行时阻塞,但我还需要能够读取输出.不幸的是,我认为 Popen 提供的任何方法都不会在不阻塞的情况下读取输出.我尝试了以下,这有点hack-y(我们是否允许从两个不同的对象读取和写入同一个文件?) 导入时间导入子流程从子流程导入 *使用 open("stdout.txt" ..
发布时间:2022-01-18 15:54:09 Python

Python Pyserial同时从多个串口读取数据

我正在尝试使用 Python 2.7 和 PySerial 同时读取多个串行端口. 特征应该是: 在主程序中,我获取所有打开的串行端口,打开它们并将串行对象附加到串行对象 我想在一个子进程中读取每个串口数据进行并行化 最大的问题是:如何将串口对象传递给子进程? 或者: 是否存在另一种(也许更好的)解决方案?(也许 这个:如何将扭曲的串行端口应用于我的问题?) 编辑 ..

Linux,串口,非缓冲模式

我正在尝试在 Linux 中使用串行端口组织 nob-blocking 读写功能.这是我的代码:http://pastebin.com/RSPw7HAi一切正常,但它是缓冲的.这意味着,如果我通过控制台 + CR 符号向串行输入,则选择检测新输入,否则,如果我通过简单的 python 脚本输入,它会缓冲所有符号并等待直到我发送回车符号.因此,有了这个输入(如下所示),它只是在某处缓冲符号.我必须通 ..
发布时间:2022-01-18 14:48:08 服务器开发

非阻塞模式 Swing 进度对话框

一个愚蠢的问题,但我真的无法让它工作:我在 Swing 应用程序中有一些长时间运行的进程,可能需要几分钟.我想在此过程进行时向用户显示进度对话框.我还想阻止用户执行进一步的操作,例如在进程进行时按下按钮. 如果我在 EDT 上执行该过程,这显然会阻止最终用户在该过程进行时执行任何操作.但是因为 EDT 正忙于处理,它从来没有时间渲染对话框的内容,所以我只得到了对话框的轮廓. 但如果我在 ..
发布时间:2022-01-17 10:34:23 其他开发

如何检查标准输入是否仍然打开而不阻塞?

我需要用纯 C 编写的程序在标准输入关闭时停止执行. 在程序主循环中完成了无限期的工作,我无法在那里使用阻塞检查(如 getc())(没有数据应该到达标准输入 - 它只是停留开放时间未知). 我打算使用所描述的功能来实现托管在 inetd、xinetd 或其类似物中的网络守护程序 - 它应该在连接保持打开时在 stdout 上发出数据,并在连接关闭时正确完成工作.现在我的程序被托管服务 ..
发布时间:2022-01-07 20:37:25 其他开发

在准备好从中读取的多个套接字中进行选择

我正在编写一个服务器-客户端应用程序.我有一个服务器,其中包含我从 ServerSocket 的 accept() 方法获得的多个套接字.我想从这些套接字中读取数据,但我不一定知道哪个套接字已准备好可供读取.我需要某种选择器来选择一个准备好从中读取的套接字,以便我可以读取它发送的数据. 谢谢. 解决方案 基本上有两个选项可以使它工作: 每个接受的套接字都有专用线程.这是因为“常 ..
发布时间:2022-01-04 08:48:24 Java开发

阻塞 IO 与非阻塞 IO;寻找好文章

曾几何时,我偶然看到了Introduction to Indy 文章和从那时起就不停地思考阻塞与非阻塞 IO. 寻找一些描述阻塞 IO 和非阻塞 IO 的优缺点以及如何在每种情况下设计应用程序以获得自然、易于理解和易于维护的代码的好文章. 想了解大图... 解决方案 阻塞 IO 意味着在完全接收到 IO 之前,给定的线程不能再做任何事情(在套接字的情况下,此等待可能需要很长时间). ..
发布时间:2022-01-04 08:20:50 其他开发

非阻塞 I/O 真的比多线程阻塞 I/O 快吗?如何?

我在网上搜索了一些关于阻塞 I/O 和非阻塞 I/O 的技术细节,我发现有几个人说非阻塞 I/O 会比阻塞 I/O 更快.例如在 这份文件. 如果我使用阻塞I/O,那么当前阻塞的线程当然不能做任何其他事情...因为它被阻塞了.但是一旦一个线程开始被阻塞,操作系统就可以切换到另一个线程,并且在被阻塞的线程有事情要做之前不会切换回来.所以只要系统上还有另一个线程需要 CPU 并且没有被阻塞,与基 ..
发布时间:2022-01-04 08:08:40 其他开发

非阻塞控制台输入 C++

我正在寻找一种(多平台)方式来为我的 C++ 程序进行非阻塞控制台输入,这样我就可以在程序持续运行的同时处理用户命令.程序也会同时输出信息. 最好/最简单的方法是什么?我在使用像 boost 这样的外部库时没有问题,只要它们使用宽松的许可证即可. 解决方案 我会通过创建一个单独的线程来实现这一点,该线程调用普通的阻塞 IO 函数并传递给它一个回调函数,当它收到输入时会调用该函数.你确 ..
发布时间:2022-01-04 08:04:15 C/C++开发

Play Framework 2.X 和阻塞数据库调用

我有点困惑. 来自文档: 播放默认线程池 - 这是默认线程池,其中Play Framework 中的所有应用程序代码都被执行,不包括一些迭代代码.它是一个 Akka 调度器,可以通过以下方式配置配置 Akka,如下所述.默认情况下,每个线程有一个线程处理器. 将阻塞式数据库调用包装在 Future 中是否带来好处,对 Future 的调用本身由 async 控制器包装(返回),为 ..

可以将 SQLAlchemy 配置为非阻塞吗?

我的印象是通过 SQLAlchemy 调用数据库会阻塞并且不适合在同步代码以外的任何地方使用.我是否正确(我希望我不是!)或者有没有办法将其配置为非阻塞? 解决方案 您可以使用 gevent 以非阻塞方式使用 SQLA.这是使用 psycopg2 的示例,使用 psycopg2 的 协程支持: https://bitbucket.org/zzzeek/green_sqla/ 我 ..
发布时间:2021-12-30 14:37:14 Python

为什么只读打开的命名管道会阻塞?

在使用 Python 处理各种 UNIX(Linux、FreeBSD 和 MacOS X)下的命名管道 (FIFO) 时,我注意到了一些奇怪之处.第一个,也许是最烦人的是,尝试以只读方式打开空/空闲 FIFO 会阻塞(除非我使用 os.O_NONBLOCK 和较低级别的 os.open()代码>调用).但是,如果我打开它进行读/写,则不会出现阻塞. 示例: f = open('./myfi ..
发布时间:2021-12-29 12:34:49 其他开发

UNLINK 命令总是比 DEL 命令更好吗?

在 Redis 4.0 中,有一个新命令 UNLINK 用于删除 Redis 内存中的键. 此命令与 DEL 非常相似:它删除指定的键.就像 DEL 一样,如果键不存在,则会被忽略.但是,那命令在不同的线程中执行实际的内存回收,所以它不会阻塞,而 DEL 是.这是命令名称的地方来自:该命令只是从键空间中取消键的链接.这实际删除将在稍后异步进行. 所以人们总是可以(100% 次)使用 U ..
发布时间:2021-12-28 09:18:13 其他开发