精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

java小知識-納秒

京東云 ? 來源:京東物流 崔冬冬 ? 作者:京東物流 崔冬冬 ? 2024-11-26 11:11 ? 次閱讀

作者:京東物流 崔冬冬

一、System.nanoTime()

java中,有這么一個方法System.nanoTime() ,你用過嗎?

二、與System.currentTimeMillis()對比

System.currentTimeMillis()我們經常使用,可以參考對比一下

看方法意思,一個是納秒,一個是毫秒,二者有關系嗎?

先看看單位換算:一秒=1000毫秒 1毫秒=1000微秒 1微秒=1000納秒

那么1毫秒=1000000納秒,二者是不是這樣的倍數關系?

帶著疑問,我們本地打印測試一下

System.out.println("毫秒="+System.currentTimeMillis());
System.out.println("納秒="+System.nanoTime());
輸出:
毫秒=1729763507201
納秒=257832682992

很顯然,不是 1:1000000的關系,具體是什么呢?

三,方法解釋

看一下源碼中的方法解釋

Returns the current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds. This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). The same origin is used by all invocations of this method in an instance of a Java virtual machine; other virtual machine instances are likely to use a different origin.

大概意思,該方法返回正在運行的Java虛擬機的高分辨率時間源的當前值,單位為納秒。系統啟動時間到現在經歷的時間,與任何其他系統或掛鐘時間概念無關。

四,使用場景

如此精度的時間,使用場景有哪些呢

1) 性能分析:常用于性能分析和優化,System.nanoTime()可以測量代碼段的執行時間,幫助開發人員找出性能瓶頸并進行優化。

比如:一個簡單的for循環,我們用System.nanoTime()計時,可以見更精細的耗時。

2) 計時器:在需要精確計時的場景下,如計算程序執行時間、延遲等,System.nanoTime()可以提供更精確的時間信息,避免受系統時間調整的影響。

3) 并發控制:在多線程編程中,我們可能需要實現一些并發控制策略,如超時控制、任務調度等。可以用于獲取時間戳,幫助實現這些并發控制策略。

4) 隨機種子:Random類構造函數中使用System.nanoTime()作為種子值,提高隨機性。具體可以看一下Random類。

五,簡單總結

1)System.nanoTime()是高精度計數器,是相對時間。

2)jdk源碼中很多地方使用了System.nanoTime(),我們可以學習參考。

3)小知識分享,不足之處歡迎大家指正,關于java里的知識點也歡迎大家討論分享。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2959

    瀏覽量

    104553
收藏 人收藏

    評論

    相關推薦

    激光脈沖誘導硅表面微結構

    【作者】:袁春華;李曉紅;唐多昌;楊宏道;【來源】:《強激光與粒子束》2010年02期【摘要】:利用Nd:YAG激光脈沖,在能量密度為1~10 J/cm2范圍內輻照單晶硅,形成了表面錐形微結構
    發表于 04-22 11:41

    硬件如何實現一個信號的級精確延時?

    器件或電路后 -> 實現輸出延時5后才上跳,5的精確度不要超過正負20% ........ 該如何實現?
    發表于 12-04 15:43

    求助,c51級的延時,要怎么獲得???

    在用到ds18b20的時候,那些讀寫函數要做幾百的延時,不知道怎么獲得????
    發表于 03-11 21:04

    積分電路能否積分級脈沖信號

    請教積分電路的問題,積分電路能否對幾十的脈沖信號進行積分?如果可以對積分電路的參數設計有什么要求?謝謝~
    發表于 10-30 18:25

    用于單電源供電的七比較器

    DN185- 用于單電源供電的七比較器
    發表于 07-24 16:59

    Rogowski線圈信號電阻對級脈沖大電流的響應

    Rogowski線圈信號電阻對級脈沖大電流的響應:
    發表于 10-31 14:18 ?15次下載

    脈沖檢測電路圖

    脈沖檢測電路圖
    發表于 12-24 22:05 ?838次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>脈沖檢測電路圖

    級窄脈沖發生器電路

    級窄脈沖發生器電路
    發表于 02-28 11:48 ?3080次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>級窄脈沖發生器電路

    JAVA相關基礎知識

    JAVA相關基礎知識,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-10 11:17 ?0次下載

    Java設計知識講解

    本文檔內容介紹了基于Java設計知識講解,供參考
    發表于 03-26 11:09 ?16次下載

    Java程序設計教程之Java語言的基礎知識概述

    本文檔詳細介紹的是Java程序設計教程之Java語言的基礎知識概述主要內容包括了:1.Java語言發展簡史,2.Java的特點(為什么要學習
    發表于 02-22 10:28 ?36次下載
    <b class='flag-5'>Java</b>程序設計教程之<b class='flag-5'>Java</b>語言的基礎<b class='flag-5'>知識</b>概述

    關于JAVA的相關基礎知識

    JAVA相關基礎知識,Arrays.sort(數組名)—給數組排輸出,String是最基本的數據類型等等
    發表于 09-23 15:22 ?0次下載

    瞬態吸收光譜儀-EOS

    寬帶泵浦探針瞬態吸收光譜儀,可以匹配各種脈沖激光器。作為一個完整的交鑰匙系統,EOS是一款易于調整時間窗口的瞬態光譜測量系統,并擁有亞的時間分辨率。EOS
    的頭像 發表于 04-14 07:18 ?831次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>瞬態吸收光譜儀-EOS

    激光加工激光、皮激光、飛激光,你分得清嗎?

    大家對激光加工并不陌生,但你對經常能聽到的激光、皮激光、飛激光等,你是否能分得清呢?▌我們先來搞清楚時間單位換算1ms(毫秒)=0.001
    的頭像 發表于 06-21 17:25 ?1317次閱讀
    激光加工<b class='flag-5'>納</b><b class='flag-5'>秒</b>激光、皮<b class='flag-5'>秒</b>激光、飛<b class='flag-5'>秒</b>激光,你分得清嗎?

    激光焊接機如何實現高精度焊接

    編輯:鐳拓激光激光焊接機實現高精度焊接主要依賴于先進的激光技術和精確的控制系統。以下是鐳拓小編為大家總結的激光焊接機實現高精度焊接的幾點關鍵因素:1.激光技術:
    的頭像 發表于 01-29 15:38 ?930次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>激光焊接機如何實現高精度焊接