第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

System.NanTime()是完全無用的嗎?

System.NanTime()是完全無用的嗎?

C
犯罪嫌疑人X 2019-07-27 19:15:32
System.NanTime()是完全無用的嗎?如博客文章所記載當(dāng)心Java中的System.NanTime(),在x86系統(tǒng)上,Java的System.nanTime()使用cpu特定計數(shù)器。現(xiàn)在考慮一下用于度量調(diào)用時間的以下情況:long time1= System.nanoTime();foo();long time2 = System.nanoTime();long timeSpent = time2-time1;現(xiàn)在,在多核系統(tǒng)中,可能是在測量時間1之后,線程被調(diào)度到另一個處理器上,它的計數(shù)器比以前的CPU小。因此,我們可以在Time 2中得到一個值,即較少而不是時間1。因此,我們將得到一個負(fù)值的時間斯賓特。考慮到這種情況,這不是說System.Nantime現(xiàn)在幾乎沒用了嗎?我知道改變系統(tǒng)時間不會影響納米時間。這不是我上面描述的問題。問題是每個CPU都會保持一個不同的計數(shù)器,因?yàn)樗谴蜷_的。與第一CPU相比,該計數(shù)器在第二CPU上可以更低。由于操作系統(tǒng)可以在獲得時間1之后將線程調(diào)度到第二個CPU,TimeSpent的值可能是不正確的,甚至是負(fù)值。
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊

我做了一些搜索,發(fā)現(xiàn)如果一個人是迂腐的,那么是的,它可能被認(rèn)為是無用的.在特定情況下.這取決于你的需求對時間的敏感程度.

檢查這句話來自JavaSun站點(diǎn):

實(shí)時時鐘和System.nanTime()都基于相同的系統(tǒng)調(diào)用,因此也基于相同的時鐘。

使用JavaRTS,所有基于時間的API(例如定時器、周期線程、截止日期監(jiān)視等等)都是基于高分辨率定時器的。而且,結(jié)合實(shí)時優(yōu)先級,它們可以確保在合適的時間執(zhí)行適當(dāng)?shù)拇a,以滿足實(shí)時約束。相比之下,普通的JavaSEAPI只提供了幾種能夠處理高分辨率時間的方法,而不能保證在給定的時間執(zhí)行。在代碼中的各個點(diǎn)之間使用System.nanTime()來執(zhí)行經(jīng)過的時間測量應(yīng)該始終是準(zhǔn)確的。

Java還有一個NanTime()的警告方法:

這種方法只能用于測量經(jīng)過的時間,而與系統(tǒng)或掛鐘時間的任何其他概念無關(guān)。返回的值表示某個固定但任意時間的納秒(可能在將來,因此值可能為負(fù)值)。這種方法提供納秒精度,但不一定是納秒精度。沒有保證價值觀變化的頻率。持續(xù)時間超過292.3年的連續(xù)呼叫的差異(2)63由于數(shù)值溢出,無法精確計算經(jīng)過的時間。

似乎唯一可以得出的結(jié)論是,不能將NanTime()作為一個精確的值來依賴。因此,如果您不需要測量僅隔納秒的時間,那么即使結(jié)果返回值為負(fù)值,此方法也是足夠好的。但是,如果您需要更高的精度,它們似乎建議您使用JavaRTS。

所以回答你的問題.沒有納米時間()不是無用的.只是它不是在每一種情況下使用的最謹(jǐn)慎的方法。




查看完整回答
反對 回復(fù) 2019-07-28
  • 3 回答
  • 0 關(guān)注
  • 520 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號