草庐IT

nio-thread

全部标签

java - Thread.sleep() 永不返回

我在使用Java上的Thread.sleep()时遇到了一个奇怪的错误。出于某种原因,当我在某些机器上调用sleep时,它永远不会返回。我无法弄清楚可能导致这种行为的原因。起初,我认为错误可能在我的代码中的其他地方,所以我做了最简单的sleep测试:publicclassSleepTest{publicstaticvoidmain(String[]args){System.out.println("Beforesleep...");try{Thread.sleep(100);}catch(InterruptedExceptione){}System.out.println("After

java - Thread.sleep() 挂起?

这是我的简单代码,每秒循环一次(不需要精确)并在必要时开始工作:while(true){//checkdbfornewjobsand//kickoffthreadifnecessarytry{Thread.sleep(1000);}catch(Throwablet){LOG.error("",t);}}这段代码已经运行了好几个月。就在昨天,我们开始遇到问题,我们的一台服务器似乎卡在Thread.sleep(1000)方法中。IOW-已经过去一天了,Thread.sleep还没有返回。我启动了jconsole并获取了有关该线程的信息。Name:Thread-3State:TIMED_WA

java - Thread.sleep() 挂起?

这是我的简单代码,每秒循环一次(不需要精确)并在必要时开始工作:while(true){//checkdbfornewjobsand//kickoffthreadifnecessarytry{Thread.sleep(1000);}catch(Throwablet){LOG.error("",t);}}这段代码已经运行了好几个月。就在昨天,我们开始遇到问题,我们的一台服务器似乎卡在Thread.sleep(1000)方法中。IOW-已经过去一天了,Thread.sleep还没有返回。我启动了jconsole并获取了有关该线程的信息。Name:Thread-3State:TIMED_WA

Java 线程转储 : BLOCKED thread without "waiting to lock ..."

我很难理解从jstack获得的线程转储,用于在Tomcat6(java1.6.0_22,Linux)上运行的SpringMVCWeb应用程序。我看到自己被阻塞的阻塞线程(导致其他线程等待),但是线程转储并没有告诉我他们等待的原因或等待哪个监视器。例子:"TP-Processor75"daemonprio=10tid=0x00007f3e88448800nid=0x56f5waitingformonitorentry[0x00000000472bc000]java.lang.Thread.State:BLOCKED(onobjectmonitor)atjava.lang.Class.in

Java 线程转储 : BLOCKED thread without "waiting to lock ..."

我很难理解从jstack获得的线程转储,用于在Tomcat6(java1.6.0_22,Linux)上运行的SpringMVCWeb应用程序。我看到自己被阻塞的阻塞线程(导致其他线程等待),但是线程转储并没有告诉我他们等待的原因或等待哪个监视器。例子:"TP-Processor75"daemonprio=10tid=0x00007f3e88448800nid=0x56f5waitingformonitorentry[0x00000000472bc000]java.lang.Thread.State:BLOCKED(onobjectmonitor)atjava.lang.Class.in

java - Thread.sleep() 在 while 循环中

我注意到NetBeans警告我在我的Java代码中的while循环中使用Thread.sleep(),所以我对这个主题进行了一些研究。主要问题似乎是性能之一,当计数器仍在hibernate时,您的while条件可能会变为真,从而在等待下一次迭代时浪费挂钟时间。这一切都说得通。我的应用程序需要联系远程系统并定期轮询操作的状态,等待操作完成后再发送下一个请求。目前代码在逻辑上是这样做的:Stringstate=getstateviaRPCcallwhile(!state.equals("complete")){Thread.sleep(10000);//Wait10secondsstate

java - Thread.sleep() 在 while 循环中

我注意到NetBeans警告我在我的Java代码中的while循环中使用Thread.sleep(),所以我对这个主题进行了一些研究。主要问题似乎是性能之一,当计数器仍在hibernate时,您的while条件可能会变为真,从而在等待下一次迭代时浪费挂钟时间。这一切都说得通。我的应用程序需要联系远程系统并定期轮询操作的状态,等待操作完成后再发送下一个请求。目前代码在逻辑上是这样做的:Stringstate=getstateviaRPCcallwhile(!state.equals("complete")){Thread.sleep(10000);//Wait10secondsstate

Java I/O 与带有 Linux NPTL 的 Java 新 I/O (NIO)

我的网络服务器使用通常的JavaI/O和每个连接机制的线程。如今,随着用户的增加(长轮询连接),他们开始屈服。但是,连接大多是空闲的。虽然这可以通过添加更多网络服务器来解决,但我一直在尝试对NIO进行一些研究。执行。我对它的印象好坏参半。我已经阅读了使用新的NPTL进行常规I/O的基准测试。Linux中的库优于NIO。配置和使用最新的NPTLforLinuxwithJavaI/O的真实体验是什么?有没有提高性能?关于更大范围的问题:我们期望的标准服务器级机器(戴尔四核处理器)中的最大I/O和阻塞线程数(我们在Tomcat线程池中配置)是多少正常执行(使用LinuxNPTL库?)。如果线

Java I/O 与带有 Linux NPTL 的 Java 新 I/O (NIO)

我的网络服务器使用通常的JavaI/O和每个连接机制的线程。如今,随着用户的增加(长轮询连接),他们开始屈服。但是,连接大多是空闲的。虽然这可以通过添加更多网络服务器来解决,但我一直在尝试对NIO进行一些研究。执行。我对它的印象好坏参半。我已经阅读了使用新的NPTL进行常规I/O的基准测试。Linux中的库优于NIO。配置和使用最新的NPTLforLinuxwithJavaI/O的真实体验是什么?有没有提高性能?关于更大范围的问题:我们期望的标准服务器级机器(戴尔四核处理器)中的最大I/O和阻塞线程数(我们在Tomcat线程池中配置)是多少正常执行(使用LinuxNPTL库?)。如果线

java - 如何通过 Thread 访问 Runnable 对象?

可能重复:need-help-returning-object-in-thread-run-method你好。我有一个实现可运行的类,我有一个列表,存储用该类的不同对象实例化的线程。给定运行它们的线程对象,我如何访问底层对象的属性?这是一个例子:publicclassSO{publicstaticclassTestRunnableimplementsRunnable{publicStringfoo="hello";publicvoidrun(){foo="world";}}publicstaticvoidmain(String[]args){Threadt=newThread(newT