1. 程式人生 > >linux系統時間對java.Timer執行產生的影響

linux系統時間對java.Timer執行產生的影響

很有意思的一件事情,如果你們有興趣,可以去試試

環境:centOS7-mini-x64

openJDK-1.7

步驟:

1.建立一個簡單的2秒輸出時間的timer

package linuxTimer;

import org.apache.log4j.Logger;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 * Created by shenhongliang on 2015/11/23.
 */
public class Log {
    public static Logger logger = Logger.getLogger(Log.class);

    public static void main(String[] a){
        // System.out.println("This is println message.");

        // 記錄debug級別的資訊
//        logger.debug("This is debug message.");
        // 記錄info級別的資訊
//        logger.info("This is info message.");
        // 記錄error級別的資訊
//        logger.error("This is error message.");

        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                logger.info(new Date());
            }
        };
        Timer timer = new Timer();
        timer.schedule(task, 0, 2000);
    }
}

2.打個jar,讓這個小程式在你的機器上跑起來,其實不用log4j也可以,開始我以為它不能在終端上顯示呢

3.這個小程式隔2秒告訴你一次,當前系統的時間,現在用另外一個終端連線上linux

4.使用命令 ` date -s xx:xx:xx` 先向未來修改時間,觀察結果,再向過去修改時間,觀察結果。向過去修改時間的時候,不要修改的過大,1分鐘內,因為你需要等它

我先把我的結論放上來:

經實驗,並不是執行緒被停止,實際情況如下:     1.當將時鐘向未來調整,timer會繼續從新時間開始定時執行任務.     2.當將時鐘向過去調整,timer會暫停執行,暫停的時間=現在的時間-新設定的時間
後續我會看一下到底為什麼,再來填坑,先放出實驗結果,感興趣的自己動手試試,讀了原始碼給我說說~

相關推薦

linux系統時間java.Timer執行產生影響

很有意思的一件事情,如果你們有興趣,可以去試試 環境:centOS7-mini-x64 openJDK-1.7 步驟: 1.建立一個簡單的2秒輸出時間的timer package linuxTimer; import org.apache.log4j.Logger;

Linux系統使用time計算命令執行時間

 轉自:https://www.cnblogs.com/liuzhipenglove/p/7058726.html 參考: https://www.cnblogs.com/bittorrent/p/3761247.html https://blog.csdn.net/wangj

JAVA 修改win/linux 系統時間 JAVA 修改系統時間

原創 :https://blog.csdn.net/qq2531246791/article/details/84898221 轉載請標明出處 https://blog.csdn.net/qq2531246791/article/details/84898221  

執行緒例項——每一秒顯示一次系統時間Java

“多執行緒”學過程式設計的都知道,但我現在才算真的明白他是用來幹什麼的。就像是完成某一目的,把它分成不同方向,同時執行實施,最後由主方向完成結束。這樣就達到高效率低消耗的目的了。 每一秒顯示一次系統時間,這一專案很容易但是很容易造成死迴圈而跳不出程式從而結束了,我們就可以利

linux系統上安裝java

ubuntu linux server export 文件夾 如何在ubuntu server上安裝java(jre或jdk),主要註意以下幾點:(在Centos,redhat上同樣適用)1.下載你想要的java版本壓縮包。  JRE下載:http://java.com/en/downlo

linux系統時間和時區與internet時間同步

linux 時間 時區 同步問題如此圖紅色區域# /usr/sbin/ntpdate time.nist.gov //手動同步時間後,發現與網絡時間還是不不對# vi /etc/sysconfig/clock //發現是new_york,ZONE="America/New_Yo

Linux系統高CPU的監控及日誌分析

文件 mos anti sage them 其中 generate ted cpu 使用linux系統時,占用cpu資源過高和,用腳本排查: 1,實時監控,一旦有cpu占用高的進程,程序啟動; 2,再對進程分析,得出對應線程; 3,對對應線程所在的程序日誌文檔進行分析,比如

Linux 系統時間

date 時間戳 參數命令行模式下date:顯示當前時間date +%s:顯示時間戳 date命令:一般格式為: date [選項] 顯示時間格式(以+開頭,後面接格式) 選項參數:-d<字符串> 顯示字符串所指的日期和時間(字符串必須加引號)-s<字符串> 根據字符串設置日

信號處理是Unix和LInux系統為了響應某些狀況而產生的事件

ctrl+c 系統 inux str bubuko lin inf 發送 結束 信號處理是Unix和LInux系統為了響應某些狀況而產生的事件,通常內核產生信號,進程收到信號後采取相應的動作。 例如當我們想強制結束一個程序的時候,我們通常會給它發送一個信號,然後該進程會捕

同步linux系統時間腳本

linux 時間同步 ntpdate rdate 分享一個同步Linux系統時間d的腳本,可以自動設置系統時區為東八區,並同步系統時間,當ntpdate同步失敗時會嘗試用rdate同步,時間服務器us.ntp.org.cn和time.nist.gov可以替換成自己常用的 #!/bin/bash

Linux系統學習】程序與執行

程序執行新程式 程序等待 wait()函式 程序執行新程式 fork()/exec()組合是典型的Linux

青蛙學Linux系統初始化init及執行

Linux系統的啟動首先從BIOS開始,接下來Linux的載入程式將核心映像載入到記憶體,進行核心初始化。在核心初始化的最後一步,就是啟動PID為1的init程序,這個程序是系統的第一個程序,負責啟動那些開機時需要啟動的服務。 大多數的Linux發行版的init系統都是和System V相容的,所以也被稱為

(轉)使用 Jmeter Java web 執行負載(壓力)測試

(轉存)https://blog.csdn.net/change_on/article/details/72876800   http://www.thegeekstuff.com/2015/02/jmeter-load-testing/ https://www.digitalocea

linux系統時間相關的命令

1.uptime命令 輸出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00 2.檢視/proc/uptime檔案計算系統啟動時間 cat /proc/uptime 輸出: 5113396.94 5759

通過qt在linux系統c++進行封裝獲得so庫並在在其他程式中呼叫共享庫

在qt下封裝.so 開啟qt新建專案,選擇這個 2、生成了兩個.h檔案和一個main.c檔案,這裡參照.h檔案構建標頭檔案,宣告函式變數等,也就是展現給客戶使用的部分。 之後在.c檔案中對自己的函式進行定義 點編譯,就可以了,可以看到在專案資料夾中生成了.s

Linux系統資料庫使用和管理

資料庫是IP行業的金飯碗 1.定義:高階的excel表格軟體 2.知名的資料庫 oracle(不是開源的) mysql(開源) mariadb(mysql中一個分支) 一.安裝資料庫 1.安裝資料庫軟體 yum install mariadb-server -y 2.開啟服

Linux系統時間與硬體時間時間同步

Linux系統有系統時間和硬體時間之分: 系統時間: 一般說來就是我們執行 date命令看到的時間,linux系統下所有的時間呼叫(除了直接訪問硬體時間的命令)都是使用的這個時間。 硬體時間:主機板上BIOS中的時間,由主機板電池供電來維持執行,系統開機時要讀取這個時間,

修改linux系統時間為CST時區

現象: 當前時間為北京時間2017-05-24 14:36:15,但是在伺服器上的時間卻慢了12個小時,關於在於系統時區設定為EDT,比北京時間慢了12個鐘頭 [[email protected]_test ~]# date; Wed May 24 02:36:15 EDT 201

校正Linux系統時間並把系統時間寫入硬體

先校正Linux系統時間: 13 Nov 18:27:41 ntpdate[7167]: step time server 85.199.214.101 offset 340324836.877469 sec date Mon Nov 13 18:27:47

Linux普通使用者java環境變數進行配置

具體操作如下: 1、下載jdk安裝包到伺服器 2、解壓 tar -zxvf jdk-8u131-linux-x64.tar.gz3、配置環境變數    3.1、vi ~/.bash_profile    3.2、在.bash_profile檔案中填入如下語句:     export PATH    expor