[英]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.