草庐IT

nio-thread

全部标签

Java NIO : transferFrom until end of stream

我正在研究NIO库。我正在尝试监听端口8888上的连接,一旦连接被接受,就将该channel中的所有内容转储到somefile。我知道如何使用ByteBuffers来做到这一点,但我想让它与据称super高效的FileChannel.transferFrom一起工作.这是我得到的:ServerSocketChannelssChannel=ServerSocketChannel.open();ssChannel.socket().bind(newInetSocketAddress(8888));SocketChannelsChannel=ssChannel.accept();FileCh

java - 如何在 Java 7 中用 nio 替换 File.listFiles(FileFilter filter)?

我有一些用Java6编写的文件I/0遍历代码,试图将它移动到Java7中的新I/O,但我找不到任何替代此类代码的东西。File[]files=dir.listFiles(AudioFileFilter.getInstance());也就是说,没有办法只过滤文​​件的路径,它会返回文件列表,所以如果我想在它调用的方法中限制File的使用,我必须将每个文件转换为路径(file.toPath),这看起来比较费力。我确实看过FileVisitor,但这似乎不允许您控制树的遍历方式,所以我认为它对我不起作用。那么Java7中的文件路径有多少替代品? 最佳答案

JavaFx 2.x - Swing : Not on FX application thread

我正在尝试通过使用附加JFXPanel的JInternalFrame来使用JavaFx2.x和Swing应用程序下面是我的代码publicclassInternalFrameWithJavafxextendsjavax.swing.JFrame{/***CreatesnewformInternalFrameWithJavafx*/publicInternalFrameWithJavafx(){initComponents();finalJInternalFrameframe=newJInternalFrame();frame.setTitle("testInternalFrame");

java - 为什么 'extends Thread' 存在,而 'implements Runnable' 在所有情况下都是赢家

这个问题在这里已经有了答案:"implementsRunnable"vs"extendsThread"inJava(43个回答)关闭6年前。我知道implementsRunnableispreferredoverextendsThread在Java线程中,因为它允许我们在需要时扩展一些其他类。但如果是这样的话,extendsThread是否也比implementsRunnable有自己的优势,如果有,这些优势是什么?

java - 如何使用NIO将InputStream写入文件?

我正在使用以下方式将InputStream写入File:privatevoidwriteToFile(InputStreamstream)throwsIOException{StringfilePath="C:\\Test.jpg";FileChanneloutChannel=newFileOutputStream(filePath).getChannel();ReadableByteChannelinChannel=Channels.newChannel(stream);ByteBufferbuffer=ByteBuffer.allocate(1024);while(true){if

java - JDI Thread Evaluations 遇到问题

我正在运行EclipseforJava。我创建了一个XML文件的DOM版本。现在我想更改文件中元素的属性。我在控制DOM的类中调用了一个调用方法的方法,在调试时出现了一个对话框,提示“JDI线程评估遇到问题。异常处理异步线程队列”。我是Java的新手,没有遇到过这样的错误,我也不知道是什么原因造成的。如果有人对问题的原因和/或解决问题的方法有任何建议......非常感谢! 最佳答案 留意您的“监视”表达式-如果您不需要它们,请将它们全部删除。有时某些watch表达式会导致我出现此错误消息。这也可以解释为什么它会间歇性地发生在人们身上

Java 阻塞问题 : Why would JVM block threads in many different classes/methods?

更新:这看起来像是内存问题。一个3.8Gb的Hprof文件表明,当发生这种“阻塞”时,JVM正在转储其堆。我们的运营团队看到该站点没有响应,进行了堆栈跟踪,然后关闭了该实例。我相信他们在堆转储完成之前关闭了站点。日志中没有错误/异常/问题的证据——可能是因为JVM在生成错误消息之前被终止了。原始问题我们最近遇到了一个应用程序出现——对最终用户来说——挂起的情况。我们在应用程序重新启动之前获得了堆栈跟踪,并且我发现了一些令人惊讶的结果:在527个线程中,463个线程状态为BLOCKED。过去以往被阻塞的线程通常有这样的问题:1)一些明显的瓶颈:例如某些数据库记录锁定或文件系统锁定问题导致

java - 使用Java nio创建子目录和文件

我正在创建一个简单的程序,它将尝试从磁盘读取“conf/conf.xml”,但如果此文件或目录不存在,则会创建它们。我可以使用下面的代码来做到这一点://createsubdirectorypathPathconfDir=Paths.get("./conf");//createfile-in-subdirectorypathPathconfFile=Paths.get("./conf/conf.xml");//ifthesub-directorydoesn'texistthencreateitif(Files.notExists(confDir)){try{Files.createDi

Java 并发数 : is final field (initialized in constructor) thread-safe?

谁能告诉我这个类是否是线程安全的?classFoo{privatefinalMapaMap;publicFoo(){aMap=newHashMap();aMap.put("1","a");aMap.put("2","b");aMap.put("3","c");}publicStringget(Stringkey){returnaMap.get(key);}}编辑:我没有澄清问题是我的错。根据JMMFAQ:Anewguaranteeofinitializationsafetyshouldbeprovided.Ifanobjectisproperlyconstructed(whichmea

java - 采访 : How to ensure that a thread runs after another?

有线程T1、T2和T3,如何保证线程T2在T1和线程T3在T2之后运行?这个问题是在我的面试中被问到的。我没有回答。请详细说明。 最佳答案 这将是最简单、最愚蠢的方法:finalThreadt1=newThread(newT1());//assumeT1isaRunnablet1.start();t1.join();finalThreadt2=newThread(newT2());t2.start();t2.join();finalThreadt3=newThread(newT3());t3.start();t3.join();