22得票7回答
基于Netty的非阻塞REST框架

我正在开发一个需要高可扩展性的RESTful应用程序。我考虑使用基于Netty的框架来实现RESTful应用程序。我查看了一些可用选项,并尝试了解它们作为非阻塞实现能够提供什么。以下是我的发现: rest.li --> 还处于基于Netty的NIO实现的试验阶段,因此不适合生产环境。 RE...

22得票3回答
Java I/O与Java新I/O(NIO)在Linux NPTL下的区别

我的Web服务器使用常规的Java I/O和每个连接一个线程的机制。现在,由于用户增加(长轮询),它们正处于困境中。但是,这些连接大多数情况下是空闲的。尽管可以通过添加更多Web服务器来解决此问题,但我一直在研究NIO实现。 我对此有着复杂的印象。我已经阅读了一些基准测试报告,在这些报告中,...

22得票2回答
Files#delete(Path)和File#delete()之间的区别

我使用安装有Java 7更新6的Windows-7,发现了一个奇怪的(至少对我来说是)行为 - 我有两个文件E:\delete1.txt和E:\delete2.txt,它们都是只读文件。当我尝试像下面这样删除文件时,它会被轻松删除 - File file = new File("E:\\de...

21得票3回答
Java NIO是如何内部工作的?它是否在内部使用线程池?

Nio提供异步IO功能,这意味着调用线程在IO操作上不被阻塞。但是,我仍然困惑它是如何在内部工作的? 从这个答案中可以看出 - 只是有一个线程池,同步IO会被提交到其中。 JVM是否有线程池来执行实际的同步IO?对于Linux,有原生AIO支持- Java是否在内部使用它?AIO在操作系统层...

20得票3回答
为什么使用Files.list()并行流的性能比使用Collection.parallelStream()要慢得多?

以下代码片段是一个方法的一部分,该方法获取目录列表,在每个文件上调用提取方法并将生成的药物对象序列化为xml。try(Stream<Path> paths = Files.list(infoDir)) { paths .parallel() ...

20得票1回答
Java.lang.UnsupportedOperationException: 在Windows上不支持将'posix:permissions'作为初始属性。

我正在使用Java 7的文件API。我编写了一个在Ubuntu上完美创建目录的类,但是当我在Windows上运行相同的代码时,它会抛出错误:Exception in thread "main" java.lang.UnsupportedOperationException: 'posix:pe...

19得票7回答
Java NIO:transferFrom 直到流结束

我正在尝试使用NIO库。我想监听8888端口的连接,一旦接受到一个连接,就将该通道中的所有内容转储到somefile。 我知道如何使用ByteBuffers实现,但我想尝试使用传闻中效率超高的FileChannel.transferFrom来实现。 这是我的代码:ServerSocketCha...

19得票2回答
如何将FileInputStream获取到assets文件夹中的文件

我知道如何使用AssetManager从res/raw目录中读取一个File,并得到一个InputStream对象。但是基于我的特殊需求,我需要一个FileInputStream对象。我需要用getChannel()方法从FileInputStream对象中获取FileChannel对象。 ...

19得票2回答
快速的逐步读取大文件的方法

当给定一个大小为MAX_BUFFER_SIZE的缓冲区,并且有一个文件远远超过它时,如何做到: 按MAX_BUFFER_SIZE块读取文件? 尽可能快地完成它 我尝试使用NIO RandomAccessFile aFile = new RandomAccessFile(fileN...

19得票10回答
每个客户端一个线程,可行吗?

我正在编写一个Java服务器,它使用普通套接字从客户端接受连接。我使用相当简单的模型,在其中每个连接都有自己的线程以阻塞模式从中读取。伪代码:handshake(); while(!closed) { length = readHeader(); // this usually bloc...