計算無理數的服務器:
一個服務器,可以在某個用戶發起計算請求(一個StartServlet處理這個請求)時,開始計算Pi或者e等無理數(根據傳入引數確定),眾所周知,這是一個無窮的程序。用戶可以發起一個終止請求(StopServlet來處理這個請求),終止此次計算。如何實作這個系統?
uj5u.com熱心網友回復:
同一個用戶可不可以同時發出多個Start?也就是一個開始沒處理完,又繼續發一個開始處理?其實只是個簡單的異步通信和任務狀態記錄問題。也就是后臺收到Start請求就往任務表插入一條任務,狀態為未執行,后臺有個處理回圈監視任務表并啟動處理,修改狀態為執行中,同時更新當前執行任務的batch id或執行緒 id等,當收到Stop請求則查找該用戶執行中的任務,停止相關的batch或執行緒,并修改狀態為終止或洗掉任務即可。如果一個用戶能同時Start多次,就再根據Stop的需求定位停止的任務物件;如果考慮后臺任務的負載性能,就再來個佇列快取Start請求,等等。
uj5u.com熱心網友回復:
嗯,確實是用戶多個start,關鍵就是這個如何在多執行緒的環境下,結合上Servlet來管理某個用戶的多次計算。很懵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/99003.html
標籤:Java EE
上一篇:Error:(3, 8) java: 寫入cn.demo01.HelloWorld時出錯: Output directory is not specified
下一篇:用eclipse自帶的瀏覽器,IE不能訪問某個超鏈接的jsp頁面,而用谷歌,Edge能正常訪問,報400錯誤火狐
