簡體   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