草庐IT

阻塞队列--LinkedBlockingQueue

全部标签

c++ - 如何确定阻塞的 SSL BIO 连接是否已关闭?

我有一个要向其发送数据的阻塞SSLBIO对象。问题是远程端的连接已关闭,在我进行读取之前我无法找到它(BIO_write不会返回错误)。但是,我不想在发送前阅读,因为我不想阻止。最后,负责发送数据的代码和负责读取的代码是分开的,这意味着失败的读取不能触发另一次发送。我该如何解决这个问题? 最佳答案 有两种“关闭”状态,称为“半关闭”状态。它们主要与套接字的一侧或另一侧是否要发送更多应用程序数据有关。当您的recv调用返回0时,它实际上是在通知您没有更多的数据要接收。但是,发送数据仍然可以,除非send调用发出某种其他类型的错误信号,

python - 在 Windows 上使用 Glib 观察套接字将它们置于非阻塞模式

以下代码在Windows上无法正常工作(但在Linux上可以):sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.setblocking(True)sock.connect(address)gobject.io_add_watch(sock.fileno(),gobject.IO_OUT|gobject.IO_ERR|gobject.IO_HUP,callback)glib源代码中不同地方的注释片段,以及其他地方提到在Windows中,套接字在轮询期间处于非阻塞模式。结果,不断调用回调self.outgoing_cb,写

c# - MSMQ 中的多个队列(性能下降)

当我使用10个队列而不是1个队列时,为什么MSMQ的性能下降(~三分之一)?简而言之,当我在多线程应用程序中使用超过1个队列(从不同线程中的每个队列接收)时,MSMQ性能会大幅下降。这就像.NET中的MSMQ类有一个共享资源,随着队列数量的增加而缩小。顺便说一句,我在VisualStudio2010中使用Windows7进行这些测试。注意:我有1个队列用于在2个应用程序之间进行通信。我只需要使用可恢复模式。它工作正常,直到遇到100-150条消息/秒的限制。然后我想我可以通过将队列数量增加到10并并行处理它们来提高处理能力。但是当我收到时,时间增加了近3倍!:O我使用C#编写了我的应用

c - 从 stdin 非阻塞读取

我希望ReadConsoleW()在读取特定数量的字节后返回。但它不会返回。如何让ReadConsoleW()在读取完指定的字节数后立即返回?我试过的代码在这里:#include#includeintmain(){//somethingisbeingwrittentostdin.Sleep(2000);intb;intr;//read3widecharacterReadConsoleW(GetStdHandle(STD_INPUT_HANDLE),&b,3*sizeof(TCHAR),(LPDWORD)&r,NULL);//problem:noreturnsuntilenterpres

c# - 即使队列已重命名,如何在 Windows 上唯一标识打印队列?

如何唯一可靠地识别给定服务器上的Windows打印队列,包括跨打印队列重命名?我想处理如下情况:Jdoe创建打印机A我的程序在某个时候收集了打印机A的信息Jdoe将打印机A重命名为打印机AA我的程序在某个时候再次收集有关打印机AA的信息如何判断打印机A和打印机AA是同一台打印机(名称已更改)?我想在支持WindowsXP/2003及更高版本的C#中执行此操作。我尝试过的事情:在Windows8/Server2012上,我似乎可以通过WMI查看CIM_LogicalDevice->DeviceID来执行此操作,这似乎在重命名过程中保持一致,但在早期版本的操作系统中,此属性仅包含队列名称并

windows - 我将如何在后台运行 Laravel 5.2 的队列监听器?

在我的项目中,我使用数据库队列并使用命令执行此队列phpartisan队列:监听在composer中,它正在工作。但是在我的Windows服务器中,有很多项目使用队列,所以打开了很多Composer窗口。很不方便。是否可以在不打开Composer窗口的情况下在后台运行此命令? 最佳答案 您可以使用该命令,但它只会在您注销或重新启动之前起作用nohupphpartisanqueue:work--daemon&尾随符号(&)导致进程在后台启动,因此您可以继续使用shell而不必等到脚本完成。参见nohupnohup-runacomman

C++ 锁定文件 Windows 阻塞模式

如何使用C++以阻塞方式在Windows上阻塞文件?我所说的阻塞是指......请求锁定,如果文件被锁定,它将等待直到它被解锁,一旦文件被另一个系统进程解锁,然后执行恢复。P.S.:如果有某种跨平台解决方案,我会更喜欢它。 最佳答案 默认情况下,LockFileEx阻塞直到可以获取锁(尽管您可以使用LOCKFILE_FAIL_IMMEDIATELY告诉它不要这样做)。显然这不是跨平台的。更新这个可怕的代码示例说明了它的工作原理(您可能需要将CreateFile中的文件名从“lockBlock.cpp”更改为)。运行该程序的一个实例,

.net - 如何在 Windows 上查询打印队列

我们正在开发一个关键应用程序,需要对打印的文档进行最好的控制。为了确定哪些文档被打印或不被打印,我们需要检查打印机队列。我们如何在Windows上查询打印队列(状态、队列列表、错误...)? 最佳答案 EnumPrinters获取打印机列表,EnumJobs获取该打印机的作业列表。GetJob获取有关特定工作的信息和SetJob更改该作业的设置(暂停或取消它)。在PrintingandPrintSpoolerReferences中查看更多信息..NET有PrintQueue和PrintServer类。

Rabbitmq消息队列详解

文章目录1.MQ(MessageQueue)简介2.MQ的功能2.1流量削峰2.2应用解耦2.3异步处理3.RabbitMQ简介4.RabbitMQ架构模型(4大核心组件)5.RabbitMQ的工作原理6.RabbitMQ的安装6.1安装docker环境6.2安装RabbitMQ7.Rabbitmq的常用命令8.Rabbitmq的六种工作模式9.simple简单模式9.1simple简单模式概念9.1生产者9.2消费者10.work工作模式10.1work工作模式的概念10.2工作队列模式的原理10.3工作队列的实现11.消息应答机制11.1消息应答的概念11.2消息应答的两种模式11.2.1

c++ - Qt应用程序阻塞系统关机

我有一个Qt4.6.2应用程序,在WindowsXPSP2x64系统上运行。当我按下系统上的物理电源/关机按钮时,当我的应用程序运行时什么也不会发生,应用程序不会关闭,系统也不会关机。如果我转到开始菜单并单击关闭,那么我的应用程序将关闭但系统不会关闭。关闭我的应用后,系统会以两种方式正常关闭。有什么想法可以让我的应用程序正常运行并允许系统正确关闭吗?谢谢,扎克 最佳答案 阅读有关QSessionManager和QApplication::commitData的内容——它更符合Qt的方式