2017-07-04 22 views
-4

我想限制每秒通過ip訪問我的服務器,我如何在同一秒內執行一個Java方法來測試我的代碼?如何在同一秒內執行一個Java方法?

+0

您可以使用'TimerTask'並希望它始終在計時器到期的第二個開始時運行。但既然Java和底層操作系統都沒有提供「實時」功能,那麼不能保證...... –

+1

@TimothyTruckle是您無法保證的權利,您也可以使用java worker或ScheduledExecutorService –

回答

0

如果您的問題是多次並行或同時運行相同的java方法,您可以使用多線程。

多線程主要用途是用來執行 1.多個任務獨立 2.多個任務在同一時間獨立。

請點擊此鏈接瞭解更多信息。 https://www.javatpoint.com/multithreading-in-java

1

您永遠無法保證特定的代碼行將在另一段代碼的特定時間內運行,因爲您不知道在其上運行的計算機上可能會發生什麼情況。但是你可以將你的測試包裝在一個循環中,以檢查運行前後的時間,如果測試結束的時間不同於測試開始時的測試時間,則重複測試。

do { 
    // record the start time 

    // run the test 

    // record the end time 

} while (start time and end time are in different seconds); 

// If you get to here the test has failed. 

當然,這個測試有在期待扔你已經舉辦任何類型的異常被拋出,如果同一個IP地址,使得在相同的第二兩個呼叫;如果拋出異常則通過。

相關問題