草庐IT

Blocking

全部标签

Java 阻止列表实现

我在SO和Google上搜索了这个问题的答案,但到目前为止找不到合适的解决方案。我目前正在研究图形路由问题中的LayerManager。管理器负责提供和重置一组固定的图层。我想用一个阻塞列表来实现消费者-生产者模式,这样只要没有空闲层可用,传入的路由请求就会被阻塞。到目前为止我只找到了一个blockingqueue但是由于我们不需要FIFO、LIFO但随机访问队列并不真正起作用。更准确地说,像这样的事情应该是可能的:/*thisshouldbeblockinguntilalayerbecomesavailable*/publicLayergetLayer(){for(Layerlaye

java - 从方法中移除阻塞

这是作业。我不想要解决方案,只想要少量链接或想法。简单来说我想做的是,简单的例子:publicclassExample{publicvoidmethod(){intx=doThat();//Callothermethodswhichdonotdependonxreturn;}}doThat()是一种众所周知的耗时方法,它会导致我的程序阻塞,直到结果返回。我想使用此对象的不同方法,但程序一直卡住,直到doThat()完成。这些不同的方法不一定要从本例中使用的method()调用,但可以从对象外部调用。我考虑过使用线程,但如果我有大量对象(1000+),这可能不会非常有效(如果我错了请纠正

java - 用于计算任务的 Akka 模型

我有以下需求使用用户名和密码连接到网络服务器并获取身份验证token读取文件获取不同的参数使用第1步中的身份验证token和第2步中的参数向Web服务器发送http请求现在我有一个执行以下所有上述任务的Actorpackageakka.first.java;importakka.actor.UntypedActor;publicclassMySingleActorextendsUntypedActor{publicvoidonReceive(Objectmsg){if(msginstanceofsendRequest){//Connecttoawebserverwithausernam

Java BufferedReader readline 阻塞?

我想发出一个HTTP请求,然后得到响应,如下所示:URLConnectionc=newURL("http://foo.com").openConnection();c.setDoOutput(true);/*writeanhttprequesthereusinganewOutputStreamWriter(c.getOutputStream)*/BufferedReaderreader=newBufferedReader(newInputStreamReader(c.getInputStream));reader.readLine();但我的问题是,如果我发送的请求需要很长时间才能收到

java - 控制台输出是阻塞操作吗?

当Java程序调用System.out.println()或Scala程序调用println()时,线程会阻塞吗?我正在编写一个包含大量子任务的Scala程序。每个子任务都在Future中执行。建议actors和futures内部的代码不要阻塞,这样后续任务也不必等待。但是我非常想在控制台上打印。如果是阻塞操作:我可以做些什么来优化性能?我是否应该为控制台输出使用专用线程,以便该线程是唯一阻塞的线程?还有其他建议吗?当然我可以尝试减少输出量或者将一些输出收集到一个StringBuilder中并批量打印,这样可以减少输出操作的次数。 最佳答案

java - 中断 Java DataInputStream readFully()

我有一个从服务器流式传输视频(MJPEG)的Java小程序。我用C#(Windows服务)写了一个代理服务器,放在小程序和多个视频服务器之间。HTML/CSS/Js前端与Java小程序一起使用。所有功能都运行良好(终于!!!),除了一件事。视频服务器允许您通过REST接口(interface)回放录制的视频。剪辑完成后,服务器会保持连接打开,以防您要向其发送倒带或搜索等命令。该剪辑在小程序中播放良好,直到结束。如果您尝试开始一个新剪辑(这需要从Javscript向小程序发送命令),浏览器会卡住。但是,使用相同连接的后续命令会起作用,例如播放、暂停和搜索。如果我停止Windows服务,浏

java - Java 中线程中的线程?

我目前正在考虑如何用Java设计一个多线程系统,需要做一些繁重的网络处理和数据库存储。该程序首先会启动三个基本线程。沿着这些基本线程,我想不是从主程序而是从两个线程启动其他线程。一个线程是否有可能启动另一个线程导致某种层次结构,例如:>Parent->t0thread1->t1tread1.1>->t0thread2>->t0thread3->t2thread3.1t0=initaltimet1,t2=timeatapointintherunningthreadt1!=t2如果不能,有人可以提供带有引用的理论解决方案吗? 最佳答案

java - 在 Java 中实现阻塞函数调用

在Java中实现阻塞函数调用的推荐/最佳方法是什么,稍后可以通过来自另一个线程的调用解除阻塞?基本上我想在一个对象上有两个方法,其中第一个调用阻塞任何调用线程,直到第二个方法被另一个线程运行:publicclassBlocker{/*Anythreadthatcallsthisfunctionwillgetblocked*/publicstaticSomeResultObjectblockingCall(){//...}/*whenthisfunctioniscalledallblockedthreadswillcontinue*/publicvoidunblockAll(){//..

java - 确保所有任务完成的同步对象

我应该使用哪个Java同步对象来确保完成任意数量的任务?约束是:每项任务都需要很长时间才能完成,适合并行执行任务。有太多任务无法放入内存(即我无法将每个任务的Future放入Collection中,然后调用get在所有future上)。我不知道会有多少任务(即我不能使用CountDownLatch)。ExecutorService可能是共享的,所以我不能使用awaitTermination(long,TimeUnit)例如,对于GrandCentralDispatch,我可能会这样做:letworkQueue=dispatch_get_global_queue(QOS_CLASS_BA

java - Java 中的 OutputStream 是阻塞的吗? ( socket )

我目前正在为一个项目编写简单的网络代码,一个伙伴暗示我,当我以迭代方式从服务器向所有客户端发送一个信息包时,当其中一个客户端是没有正确回应。他以拖钓而闻名,所以我在实现一个现在负责将数据发送到客户端的辅助线程时有点怀疑,它有一个队列,服务器只需将包添加到该队列上,然后由线程读取发送数据。我现在思考后的问题是天气与否JavaSocket的OutputStream实际上将他要发送的内容排入队列,从而无需预先排队。只有当服务器阻塞时,只要他没有收到客户端发送的对象已收到的响应,才有可能出现严重问题。谢谢。 最佳答案 你的friend是对的