草庐IT

loop_a_stopped

全部标签

java - PrintGCApplicationStoppedTime 报告的 "stop the world"时间真的准确吗?

我正在尝试使用-XX:+PrintGCApplicationStoppedTimeJVM选项估计Java应用程序中的线程被垃圾收集“停止世界”暂停阻塞的时间。我解析gc.log文件并将报告的停止时间添加到GC时间戳(-XX:+PrintGCDateStamps)以获得GC事件的“开始和停止”时间戳。应用程序线程测量发送HTTP请求和获取响应所花费的时间,并记录发送请求时的时间戳和请求的持续时间。当我将GC事件时间戳与应用程序(DATA)时间戳进行比较时,我得到了一些奇怪的结果:Type|Starttime|Starttimediff|Endtime|Endtimediff|Durati

java - java线程间通信: stopping all threads when one finishes its task

我有n个线程并行运行,每个线程都执行一些自定义逻辑。但是,我的要求是,当任何一个线程完成执行时,所有其他线程都应该停止执行并返回。实现它的最佳方法是什么?我想通过共享boolean变量来做到这一点。当任何线程完成执行时,它将设置boolean值。所有线程都定期读取此变量并在设置时退出。此外,我的自定义逻辑是一个无限循环,一旦我知道某个其他线程已完成执行,我想在当前迭代后停止执行。这样做的正确方法是什么? 最佳答案 使用ExecutorService及其.invokeAny()方法(注:也有超时的版本)。来自Javadoc:Execu

Java 迭代器和 for-each-loop。有什么方法可以访问底层迭代器?

我非常喜欢Java中的for-each-loop结构(for(Te:iterable)),它适用于任何Iterable。因为在许多情况下,它使代码易于阅读和编写。我想知道是否有任何方法可以从这样的循环中访问底层迭代器。如果我想使用remove(),这可能是强制性的来自迭代器。 最佳答案 不,for-each循环的全部意义在于抽象出底层迭代器。如果需要,必须声明。 关于Java迭代器和for-each-loop。有什么方法可以访问底层迭代器?,我们在StackOverflow上找到一个类似

FPGA:ila core clock has stopped. unable to arm ila

现象:    在调试JESD204B时,为了观察204B的输出信号,采用204B输出的时钟作为ILA的抓数时钟,结果提示ilacoreclockhasstopped.unabletoarmila分析:1.先确定204B的core时钟是否输出,将core时钟进行LED灯的驱动,LED正常闪动,这说明core时钟是出来了的。2.ILA用其他时钟进行抓数,能够正常抓数。3.core时钟输出加入BUFG,提示出错,因为JESD204B中已经加入BUFG了。解决:既然JESD204B直接输出的core时钟不能作为ILA的抓数时钟,直接添加一个clockwiz,core时钟作为输入,输出一个和他同频同向作

Java/OS X 狮子 : Setting application name stopped working with JDK1. 7

到目前为止,我使用以下代码在我的AppleMacBook上设置应用程序名称(在顶部的“系统”菜单栏中)。(实际上,我想我是从stackoverflow复制的。)基本上,有一个单独的AppLauncher类,它使用System.setProperty()在为应用程序本身创建新的Runnable之前设置应用程序名称。工作得很好。但是,自从我下载并开始使用JDK1.7后,该解决方案就停止工作了-我在菜单中得到的是类名称而不是应用程序名称,就像我找到该解决方案之前一样。我尝试用谷歌搜索它,但无济于事。这里是曾经在JDK1.6下工作的已失效代码,缩减为相关部分:publicclassAppLau

java - start-stop-daemon 和 java - 如何正确执行?

我正在尝试将Java程序作为服务运行。我的要求是:1)在机器启动时启动一个java程序2)java程序崩溃重启3)以特殊用户身份在特殊目录下执行旁注:我不能假设这是唯一运行的java进程,意外运行该服务两次是危险的。到目前为止,我已经尝试使用start-stop-daemon来实现它。但是,应用程序在崩溃时不会自动重新启动(即以非零退出代码终止)。我想这与我需要使用--background有关系,因此start-stop-daemon无法确定退出代码?我对么?如何正确解决此问题?(我更喜欢只有系统功能的解决方案,由于安全限制,没有第三方工具会容易得多)我当前的脚本(Dummy,正如所说

java - Spring @PreDestroy : No logging because Logback stops too soon

在我的项目中,我使用Logback作为日志工具。我有以下类(class)@ComponentclassTest{@PreDestroypublicvoiddestroy(){try{...}catch(Exceptione){LoggerFactory.getLogger(getClass()).error(e.getLocalizedMessage(),e);}}}现在,我取消部署servlet。发生异常时,Logback不会打印消息和堆栈跟踪。这是因为在Spring调用destroy()之前,Logback正在清理。取消部署servlet时,这是第一行(也是最后一行)日志行:15:

JSDOC:声明@Type在“ ... of” loop中的变量

我可以声明变量类型吗一使用JSDOC@type注解?/**@typesome.type*/for(letoneofmany){...}诸如PHPDOC注释之类的东西:/**@var\Some\Type$one*/foreach($manyas$one){}看答案是的你可以。您只需要将类型声明移动到括号内的内部,然后才能在您的变量之前:for(/**@type{SomeType}*/constoneofmany){//...}这很好,尽管我通常更喜欢指定类型many反而。例如:/**@type{Number[]}*/constmany=[1,2,3,4];然后是one将自动推断。P.S。:注意我

java - Intellij IDEA : highlighting loop break points

在Eclipse中,有可能突出显示循环断点:我可以将光标放在break;上,它所跳出的循环将被突出显示:不过,IDEA似乎缺少此功能:是否有任何隐藏的首选项或第3方插件可以为IDEA启用相同的首选项? 最佳答案 此功能已在IntelliJ2018.2中引入:Whenyouplaceacaretatthebreakorcontinuekeyword,IntelliJIDEAhighlightsthefororwhilekeywordofthecorrespondingloop.(source:cloudfront.net)

Java 编译器 : Stop complaining about dead code

出于测试目的,我经常开始在现有项目中键入一些代码。因此,我要测试的代码先于所有其他代码,如下所示:publicstaticvoidmain(String[]args){chara='%';System.out.println((int)a);//Toknowwhere'%'islocatedintheASCIItable.//But,ofcourse,Idon'twanttostartthewholeproject,so:return;//Therealprojectstartshere...}但编译器会提示return语句,因为下面是“死代码”。(而在C++中,编译器服从程序员并简单