草庐IT

阻塞IO

全部标签

java - Akka.io,在类 Actor 上找不到匹配的构造函数

我正在尝试设置Akkaactor来处理游戏中的网络套接字。我已经定义了一个简单的actor来通过网络套接字发送消息:packageactors;importakka.actor.*;publicclassMyWebSocketActorextendsUntypedActor{publicstaticPropsprops(ActorRefout){returnProps.create(MyWebSocketActor.class,out);}privatefinalActorRefout;publicMyWebSocketActor(ActorRefout){this.out=out;}

java - 代码覆盖最终阻塞

我有以下代码结构:try{//somecode}catch(CustomExceptioncustExc){//log}catch(CustomException2custExc2){//log}catch(Exceptionexc){//log}finally{//somecode}我编写了单元测试:第一个涵盖了未抛出异常的情况(仅执行tryblock代码和finallyblock代码),另外3个是每个catchblock一次涵盖其中的哪些(执行tryblock,catchblock和finallyblock之一)。问题是EclipseEmma插件显示我没有覆盖finallybloc

java - 可靠地跳过 java.io.InputStream 及其子类型中的数据

我正在处理一个二进制流,需要高效地跳过我不感兴趣的数据范围,跳到一些将要处理的数据。InputStream.skip(long)在保证方面没有太大作用:Skipsoveranddiscardsnbytesofdatafromthisinputstream.Theskipmethodmay,foravarietyofreasons,endupskippingoversomesmallernumberofbytes,possibly0.Thismayresultfromanyofanumberofconditions;reachingendoffilebeforenbyteshavebee

java - 为什么 java.io.Bits 不公开?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我在Java中用IO做了很多工作,在寻找将原语转换为字节数组的代码并返回后,我在其中一个Java源代码托管上找到了java.io.Bits的源代码网站。快速浏览后,我意识到这正是我所需要的,除了它是包私有(private)的。所以我制作了一份公开的副本,存储在我的项目包中并使用(我向你保证,仅在个人项目中使用)。我发现它非常有用。我的问题是,为什么这个包是私有(private)的?我可以看

java - JSch 0.1.53 session.connect() 抛出 "End of IO Stream Read"

我下载了一个新的JSch0.1.53libraryJSch(sftp)下载任务不再有效。此版本在session.connect()函数上失败并抛出错误Session.connect:java.io.IOException:EndofIOStreamRead。我的旧jsch.jar(2011-10-06)在同一台主机上工作正常,也许我缺少新的配置Prop?Sessionsession=null;ChannelSftpchannel=null;try{JSch.setLogger(SSHUtil.createJschLogger());JSchjsch=newJSch();session=

java - 非阻塞 I/O 与使用线程(上下文切换有多糟糕?)

我们在我工作的一个程序中经常使用套接字,我们有时同时处理来自多达大约100台机器的连接。我们有一个非阻塞的组合I/O与状态表一起使用来管理它和使用线程的传统Java套接字。我们在非阻塞套接字方面遇到了很多问题,我个人更喜欢使用线程来更好地处理套接字。所以我的问题是:在单个线程上使用非阻塞套接字可以节省多少?使用线程涉及的上下文切换有多糟糕?您可以扩展多少个并发连接以使用Java中的线程模型? 最佳答案 I/O和非阻塞I/O选择取决于您的服务器Activity配置文件。例如。如果您使用长期连接和数千个客户端,则I/O可能会因为系统资源

java - 如何 append 到现有的 java.io.ObjectStream?

这个问题在这里已经有了答案:AppendingtoanObjectOutputStream(6个答案)关闭8年前。至于现在,当我尝试append一个对象时,我将得到java.io.StreamCorruptedException。我在互联网上搜索了一种方法来克服这个问题。到目前为止我找到的答案是无法完成。解决此问题的一种方法是将对象写入列表,然后将列表写入文件。但是我每次添加新对象时都必须覆盖该文件。加类似乎不是最优解。有没有办法将对象append到现有对象流?

java - 线程中断未结束对输入流读取的阻塞调用

我正在使用RXTX从串口读取数据。读取是在以下列方式生成的线程中完成的:CommPortIdentifierportIdentifier=CommPortIdentifier.getPortIdentifier(port);CommPortcomm=portIdentifier.open("Whatever",2000);SerialPortserial=(SerialPort)comm;...settingsThreadt=newThread(newSerialReader(serial.getInputStream()));t.start();SerialReader类实现了Run

Java NIO 管道与阻塞队列

我刚刚发现它有一个NIO工具,即JavaNIOPipe,它专为在线程之间传递数据而设计。与通过队列传递更传统的消息(例如ArrayBlockingQueue)相比,使用此机制是否有任何优势? 最佳答案 通常,传递数据供另一个线程处理的最简单方法是使用ExecutorService。这包装了一个队列和一个线程池(可以有一个线程)当你有一个支持NIOchannel的库时,你可以使用管道。如果您想在线程之间传递数据的ByteBuffers,它也很有用。否则使用ArrayBlockingQueue通常更简单/更快。如果您想要一种更快的方式在

java - Java 的非阻塞 Web 服务器

我正在阅读“TornadoWebServer”。它说它是非阻塞网络服务器。是否有用于Java网络应用程序的非阻塞服务器? 最佳答案 因此,您正在寻找支持NIO(非阻塞IO)的Javaservletcontainer/applicationserver。几乎所有这些都支持NIO:ApacheTomcat,JBossAS,OracleGlassfish等等。在其中一些(例如ApacheTomcat)上,您必须首先进行一些配置更改(另请参阅其关于NIO的HTTPconnectordocumentation)。Glassfish在幕后使用G