java 添加等待時間_Java中線程等待特定時間的最有效方法 - java

我知道這個問題here,但是我有一個稍微不同的問題。如果我希望自己通過各種Thread方法(而不是通過實用程序類或Quartz)手動編碼某個線程在特定時間的運行,那么最有效(就開銷而言)進行編碼。

我考慮過:

boolean wasInterrupted = false;

while (System.currentTimeMillis() < executionTimeInMillis) {

try {

Thread.sleep(X);

} catch (InterruptedException ie) {

wasInterrupted = true;

}

}

if (!wasInterrupted) {

doMyThing();

}

有沒有更好的辦法?這是原始和天真嗎?

參考方案

您有3種基本可能性:

Thread.sleep(...):取決于系統計時器和調度程序的精度和準確性,使當前正在執行的線程進入休眠狀態(停止執行)達指定的毫秒數和指定的納秒數。該線程不會失去任何監視器的所有權;

Thread.yield():導致當前正在執行的線程對象暫時暫停并允許其他線程執行;

監視:您在要鎖定的對象上調用wait,然后通過在同一對象上調用notify來釋放鎖定。有關更多信息,請參見javadoc:http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/Object.html#wait()

最好的方法是使用監視器,因為您知道何時獲得鎖定以及何時釋放鎖定。而且,它允許讓其他線程執行。如果您想了解為什么必須避免使用睡眠和屈服方法,請閱讀http://www.javamex.com/tutorials/threads/yield.shtml。

Java:正則表達式模式匹配器是否有大小限制? - java

我的模式類似于OR:“word1 | word2 | word3”我大約有800個字。可能有問題嗎? 參考方案 您僅受記憶和理智的限制。 :)Java:線程池如何將線程映射到可運行對象 - java

試圖繞過Java并發問題,并且很難理解線程池,線程以及它們正在執行的可運行“任務”之間的關系。如果我創建一個有10個線程的線程池,那么我是否必須將相同的任務傳遞給池中的每個線程,或者池化的線程實際上只是與任務無關的“工人無人機”可用于執行任何任務?無論哪種方式,Executor / ExecutorService如何將正確的任務分配給正確的線程? 參考方案 …JAVA:字節碼和二進制有什么區別? - java

java字節代碼(已編譯的語言,也稱為目標代碼)與機器代碼(當前計算機的本機代碼)之間有什么區別?我讀過一些書,他們將字節碼稱為二進制指令,但我不知道為什么。 參考方案 字節碼是獨立于平臺的,在Windows中運行的編譯器編譯的字節碼仍將在linux / unix / mac中運行。機器代碼是特定于平臺的,如果在Windows x86中編譯,則它將僅在Win…java:繼承 - java

有哪些替代繼承的方法? java大神給出的解決方案 有效的Java:偏重于繼承而不是繼承。 (這實際上也來自“四人幫”)。他提出的理由是,如果擴展類未明確設計為繼承,則繼承會引起很多不正常的副作用。例如,對super.someMethod()的任何調用都可以引導您通過未知代碼的意外路徑。取而代之的是,持有對本來應該擴展的類的引用,然后委托給它。這是與Eric…Java:BigInteger,如何通過OutputStream編寫它 - java

我想將BigInteger寫入文件。做這個的最好方式是什么。當然,我想從輸入流中讀取(使用程序,而不是人工)。我必須使用ObjectOutputStream還是有更好的方法?目的是使用盡可能少的字節。謝謝馬丁 參考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是將對象序列化為八位字節序列的一種通用方法。但…

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529512.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529512.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529512.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHP微信app接口退款,10.PHP接入微信退款接口

推薦文章摘要環境搭建開啟配置服務器環境核心類驗證回復拓展推薦文章今天網上和朋友圈炸開了鍋&#xff0c;原因是微信小程序正式上線了。吃瓜群眾表示不理解&#xff0c;于是去搜了下。不搜不要緊&#xff0c;搜了嚇一跳&#xff0c;原來微信小程序早在2016年9月份就已經進行了…

java線程讀取流的時候卡死,java – 線程中斷沒有結束阻塞調用輸入流讀取

我正在使用RXTX從串口讀取數據.讀取是在以下列方式生成的線程內完成的&#xff1a;CommPortIdentifier portIdentifier CommPortIdentifier.getPortIdentifier(port);CommPort comm portIdentifier.open("Whatever", 2000);SerialPort serial (SerialPort)comm;..…

php poi,GitHub - satthi/poi-php: poi-php

poi-phpvarsion 0.1(2013/10/21)このプラグインはJavaのpoiをPHPから叩いてエクセルを入出力するプラグインです。必須要件jdk1.7.0_40poi-3.9opencsv-2.3使い方①poi-phpを任意の場所に設置②PHPを記述//デフォルト読み込みrequire_once(poi-php.phpのディレクトリパス);$this…

php hmac sha256簽名,HMAC-SHA256簽名錯誤?

#2.連接商戶key&#xff1a;act_name3333321ss&client_ip118.89.65.223&mch_billnoa0000000000000000001&mch_id1529243621&nonce_str905Qh0J59d69JjDtD7QkyRAm576kh5hU&re_openidoiW0l03-60UfHJfo0olLt3wOLb0E&remark111&remark222dddd&send_…

php傳輸的多個id集中為一條記錄,如何將多個ID應用于Mysql中的一條記錄?

在實體關系語言中,這稱為多對多關系.一個產品可以有多個類別,一個類別可以有多個產品.要在關系數據庫中執行此操作,您需要三個表.product: product_id, name, description, etccategory: category_id, catname, catdescription, etc然后用這個所謂的聯接表建立產品和類別之間的…

php redis 傳遞閉包,通過緩存構建高性能 Laravel 應用

通過緩存構建高性能 Laravel 應用由 學院君 創建于3年前, 最后更新于 11個月前版本號 #220678 views9 likes1 collects配置Laravel 為不同的緩存系統提供了統一的 API。緩存配置位于 config/cache.php。在該文件中你可以指定在應用中默認使用哪個緩存驅動。Laravel 開箱支持主流…

imclearboder matlab,Lucas

Lucas-Kanade跟蹤算法是視覺跟蹤中一個很經典的基于點的逐幀跟蹤算法。起初這個算法是用來求解stero matching1的&#xff0c;后來經過Carlo Tomasi2和Jianbo Shi3等人的發展漸趨成熟。Jianbo Shi提出了一種篩選跟蹤點特征的方法&#xff0c;使得特征的跟蹤更可靠。Jean-Yves B…

php判斷url參數為空,PHP檢查url鏈接是否已經有參數的簡單示例

這篇文章主要為大家詳細介紹了PHP檢查url鏈接是否已經有參數的簡單示例&#xff0c;具有一定的參考價值&#xff0c;可以用來參考一下。感興趣的小伙伴&#xff0c;下面一起跟隨512筆記的小編小韻來看看吧&#xff01;比如分頁&#xff0c;因為有些鏈接已經有參數了&#xff0c…

java 讀取 郵件 附件,JavaMail 中對附件下載的處理

在項目中使用 JavaMail 作為郵件核心庫,但是一直遇到一個比較頭疼的問題,當郵件中存在附件時,此封郵件加載速度很慢,最高時之后 80k/s.通過 log 打印看出,當獲取附件時,獲取一段之后等待一段時間在獲取另一端.導致 io 開銷過大,等待網絡讀取時間過長.相關日志如下:O24 FETCH 27…

matlab求勒讓德多項式零點,有沒有勒讓德多項式導數 零點程序

求N1次勒讓德多項式的m(m0,1,...)階導數零點Matlab程序子程序&#xff1a;function xjp(N,alpha,beta)n1:N;a(1)(alphabeta2)/2;b(1)(beta-alpha)/2;a([2:N1])(2*nalphabeta1).*(2*nalphabeta2)./(2*(n1).*(nalphabeta1));b([2:N1])(alpha*alpha-beta*beta)*(2*nalphabeta1)./(…

js_long.php,protobuf.js 與 Long.js的使用詳解

這次給大家帶來protobuf.js 與 Long.js的使用詳解&#xff0c;是急用protobuf.js 與 Long.js的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。protobuf.js的結構和webpack的加載之后的結構很相似。這樣的模塊化組合是個不錯的結構方式。1個是適應了不同…

微分進化算法解決函數優化問題的matlab代碼,Matlab微分進化算法及優化函數測試...

微分進化(Difference Evolution&#xff0c;DE)算法是一種優化算法&#xff0c;據稱其比GA(遺傳算法)等更為優秀。借鑒網上實現的DE算法&#xff0c;用Matlab實現了對若干函數優化問題的解法&#xff0c;代碼如下&#xff1a;function [] de_testclear all;close all;clc;%解&…

Oracle中獲取文件中的數據,操作oracle中的數據文件

收藏于http://dev.yesky.com/296/8090796.shtmlOracle數據庫中管理表空間和數據文件數據庫的三大組成部分:數據文件&#xff0c;控制文件&#xff0c;Redo日志。表空間分為系統表空間和非系統表空間。SYSTEM表空間是最基本的&#xff0c;必須的&#xff0c;Oracle建議你為用戶數…

oracle 存儲過程設置回滾點,(轉)oracle 存儲過程事宜使用斷點回滾 -savepoint

學習存儲過程中使用斷點回滾事務時&#xff0c;發現目前網絡上存在一個問題&#xff0c;那就是使用斷點回滾后&#xff0c;都忘記了一個很重要的事情&#xff0c;提交事務。雖然使用了斷點回滾&#xff0c;但是斷點回滾不像rollBack或commit一樣結束當前事務&#xff0c;而使用…

php tp5清空數據表并主鍵,tp5數據庫——更新數據

更新數據更新數據表中的數據Db::table(think_user)->where(id, 1)->update([name > thinkphp]);如果數據中包含主鍵&#xff0c;可以直接使用&#xff1a;Db::table(think_user)->update([name > thinkphp,id>1]);update 方法返回影響數據的條數&#xff0c;…

oracle幾個網絡,ORACLE網絡的幾個重點概念

數據庫名(DB_NAME)、數據庫實例名(INSTANCE_NAME)、操作系統環境變量ORACLE_SID、數據庫服務名 (SERVICE_NAME)、數據庫域名(DB_DOMAIN)以及全局數據庫名(GLOBAL_DB_NAME)是幾個使用Oracle數據庫容易混 淆的概念。1、數據庫名與實例名數據庫名(DB_NAME)&#xff1a;是區分數據的…

oracle每季度補丁,Oracle 2020 年第四季度補丁發布

半個月前&#xff0c;也就是 10 月 20 日&#xff0c; Oracle 發布了今年最后一次補丁更新&#xff0c;那么很多人都想打最新的 PSU&#xff0c;理由是有被掃到各種漏洞&#xff0c;有的掃描工具著實太坑&#xff0c;這里就不用說了&#xff0c;前幾天看到蓋總發布的文章2020年…

php flash上傳進度條,PHP_PHP+FLASH實現上傳文件進度條相關文件 下載,PHP之所以很難實現上傳進度條 - phpStudy...

PHPFLASH實現上傳文件進度條相關文件 下載PHP之所以很難實現上傳進度條是因為在我們上傳文件到服務器的時候&#xff0c;要等到文件全部送到服務器之后&#xff0c;才執行相應的php文件。在這之前&#xff0c;文件數據保存在一個臨時文件里面&#xff0c;而php無法獲得這個文件…

oracle截取時間函數6,SQL 取日期部分函數

convert(varchar(10),getdate(),120)這個函數就可以得到日期部分了&#xff0c;我覺得還是比較方便的&#xff0c;我覺得SQL在日期方面&#xff0c;沒有ORACLE函數坐的好。。Sql Server中的日期與時間函數1. 當前系統日期、時間select getdate()2. dateadd 在向指定日期加上一…

oracle 找不到程序,Oracle 找不到監聽程序

Oracle服務器文件 app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.oraSID_LIST_LISTENER (SID_LIST (SID_DESC (SID_NAME CLRExtProc)(ORACLE_HOME D:\app\Administrator\product\11.2.0\dbhome_1)(PROGRAM extproc)(ENVS "EXTPROC_DLLSONLY:D:\…