草庐IT

信号基站

全部标签

php - php内部的信号

您好,当实现一个长时间保持打开状态的连接时(cometd),我将如何在php散文(未完成的请求)之间实现信号??示例时间线:请求1次启动请求1采取行动要求睡一觉请求2开始要求2采取行动请求2通知请求1然后去sleep请求1唤醒并发送新数据请求1个sleep代理我在想是否有一种方法可以减少(注意?)cpu处理 最佳答案 如果你的平台是Linux/Unix,你可以使用queues.请求1次启动请求1采取行动请求1个sleep和阅读队列(sleep(1)andreadqueue)请求2开始要求2采取行动请求2发送消息到队列请求1从队列中接

java - 锁状态下的信号线程

我从这个API中得到了以下几点我想知道以下两点之间的区别:WaitingthreadsaresignalledinFIFOorder.Theorderingoflockreacquisitionforthreadsreturningfromwaitingmethodsisthesameasforthreadsinitiallyacquiringthelock,whichisinthedefaultcasenotspecified,butforfairlocksfavorsthosethreadsthathavebeenwaitingthelongest.它与通常由ReentrantLo

java - 信号量 - 为什么我的线程一个接一个地运行而不是并发运行?

我正在尝试编写一个程序,在Main类中可以启动未知数量的新线程。每个线程依次调用SingletonCopier类,该类应调用文件传输操作。我的目标是,无论线程请求的数量如何,都是将并发传输的数量限制为2个传输,所以我想用Semaphore来解决它。我的问题是,线程似乎一个接一个地运行,而不是并发运行。这是我尝试做的:publicclassCopier{privatestaticfinalintPOOL_SIZE=2;privatestaticvolatileCopierinstance=null;privatestaticSemaphoresemaphore;privateCopier

java - Swing - Qt 信号/槽的替代品

在QtGUI中,使用信号和槽非常方便——它解耦了事件传递。当我创建一些抛出信号的小部件时,我不必事先知道谁可以获得它,稍后使用connect我指定连接。Java/Swing中的并行是什么?您能否指出有关此问题的良好资源? 最佳答案 如果没有现成的EventListener实现满足您的要求,您可以创建自己的自定义事件。每个JComponent包含类型为EventListenerList的字段.您可以使用EventListenerList中概述的方法启用自定义的APIJComponent子类来触发您的自定义事件。关于信号/槽机制,Swi

Java LinkedBlockingQueue 能够在完成时发出信号吗?

我的情况是单个生产者和单个消费者处理对象队列。队列可能为空有两种情况:消费者处理对象的速度比生产者生成新对象的速度快(生产者在生成对象之前使用I/O)。生产者已完成对象的生成。如果队列为空,我希望消费者等到新对象可用或生产者发出完成信号。到目前为止,我的研究让我一无所获,因为我仍然以一个同时检查队列和一个单独的boolean标志(isDone)的循环结束。鉴于没有办法等待多个锁(想到等待队列和标志),可以做些什么来解决这个问题? 最佳答案 首先,使用包装器“开销太大”的建议是一种猜测,IMO是一个非常糟糕的建议。这个假设应该通过具有

Java - 无需获取的信号量释放

我有给定随机数(1到n)的线程,并指示按排序顺序打印它们。我使用了信号量,这样我就获得了许可数=随机数,并比获得的多释放一个许可。acquired=randomnumber;released=1+randomnumber信号量的初始许可计数为1。因此随机数为1的线程应该获得许可,然后是2,依此类推。根据下面给出的文档支持这一点Thereisnorequirementthatathreadthatreleasesapermitmusthaveacquiredthatpermitbycallingacquire().问题是我的程序在1forn>2之后卡住了。我的程序如下:importjav

java - 如何编写简单的公平信号量?

我发现信号量(我的CustomSemaphore)的简单实现,据我所知,这是“不公平”的,因为进入安全block始终只能进入第一个线程(我不确定)。我如何编写公平的信号量(并发性的模拟newSemaphore(1,true);)publicclassSimpleSemaphoreSample2{CustomSemaphorecSem=newCustomSemaphore(1);publicstaticvoidmain(String[]args){SimpleSemaphoreSample2main=newSimpleSemaphoreSample2();Semaphoresem=new

Java - 信号/槽机制

对于Java生态系统的新手,是否有一种相当轻量级的方法来完成Qt和Django等框架对其信号/接收器系统所做的事情,其中​​组件可以说“我正在做某事”,以及其他组件可以以相当松耦合的方式处理吗?如果这个问题没有通过“单一目标答案”测试,我提前道歉。编辑:要添加更多上下文,这与Web服务的数据库驱动应用程序层有关。某些资源在持久化时还需要保存包含额外上下文信息的审计记录。在Django中,我会通过信号机制来做到这一点,或者使用几个现有的库之一来做到这一点。对于Scala程序,我使用回调函数做了我自己的hacky事情,但是使用一流的函数更容易。我毫不怀疑像Swing这样的框架为这种事情提供

java - 捕捉 Ctrl+C 信号抛出异常 "Job manager has been shut down"

我正在尝试添加对信号的支持(尤其是对于Ctrl+C)。我的工具是用Java编写的,我想在Ctrl+C被捕获时执行清理。我的主文件是应用程序,有以下和平代码:if(ArgDefinitions.getInstance().hasOption(ArgNames.EXECUTE)){performShutdownHooks();preformRun();}应用程序解析用户的选项并运行正确的方法。因此,当用户使用execute选项并单击Ctrl+C时,我希望程序停止并清理该区域。我添加了performShutdownHooks方法来处理信号,它看起来如下:privatevoidperformS

java - Java 中的信号量和线程池

我不是很清楚Java中信号量的概念并试图理解它。我看了oracledocs(http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html)和其他一些页面后的理解,它类似于锁计算许可数量。它通常用于创建资源池。在这里我感到困惑,还有ThreadPoolExecutor可以给我一个线程池。那么区别是什么呢?在什么场景下使用哪个? 最佳答案 首先,没有愚蠢的问题...Semaphore允许多个线程“获取”资源。他们应该检查资源是否可用。它就