繁体   English   中英

Java多线程

[英]Multithreading in Java

如何知道P4机器上是否同时开始运行两个线程?

例如,您可以将开始时间存储在同步映射或哈希表(已同步)中:

static Hashtable<Long, Date> starttimes = ...;

在每个线程的run()方法中:

starttimes.put(Thread.currentThread().getId(), new Date()); //or use thread names if they are unique

然后,您可以遍历日期并进行比较。

在某些系统上,您可以假设System.nanoTime()在JVM之间是相当一致的。 这不能保证,但我发现确实如此。

但是,两个线程同时启动非常罕见,您可以放心地假设这永远不会发生。 即使对System.nanoTime()的两次调用也可以相隔100或更多纳秒。 不同线程中的两个调用不太可能返回相同的值。 即使它们做到了,您也不能保证它们同时启动 它们所做的只有第一件事是同时发生的(在System.nanoTime()的精度范围内)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM