1、應用程式場景
(1)普通瀏覽器和網路服務(現在寫的網路是幫你完成執行緒控制的中間部件),網路處理請求,各種專用伺服器(例如遊戲伺服器)
(2)servlet多執行緒。
(3)FTP下載,多執行緒操作檔。
(4)資料庫中使用的多執行緒。
(5)tomcat、tomcat內部採用多線程,數百個客戶端訪問同一WEB應用程序,tomcat訪問後,將後續處理投入新的線程進行處理,該新的線程最後調用我們的servlet程式
(6)後台任務:例如,定期向大量(100W以上)使用者發送郵件;定期更新設定檔和任務調度(如quartz),一些監控用於定期收集資訊。
(7)自動操作處理:如定期備份日誌,定期備份資料庫等。
2、實例
等待逾時模式。
開發人員常用這種方法呼叫場景。呼叫一種方法時等待一段時間(一般是給定時間段),如果該方法能在給定時間段內得到結果,則立即返回結果,相反,超時返回預設結果。
一個簡單的資料庫連線池實例。
//java.sql.Connection是一个接口,最终的实现是由数据库驱动提供方来实现。 //我们通过动态代理构造一个Connection,仅仅用于示范。 public class ConnectionDriver { //动态代理的处理器类 static class ConnectionHandler implements InvocationHandler{ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Thread.sleep(100); return null; } } //创建一个Connection的代理,在commit时休眠100毫秒 public static final Connection createConnection(){ return (Connection)Proxy.newProxyInstance(ConnectionDriver.class.getClassLoader(), new Class<?>[]{Connection.class}, new ConnectionHandler()); } }
以上是Java多執行緒的使用與實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!