簡體   English   中英

JDBC連接中的多線程

[英]Multithreading in JDBC connectivity

我正在嘗試將文件上傳到服務器並將文件信息存儲到Access數據庫中,是否有必要在多用戶數據庫連接時處理線程。 如果是,該怎么辦?

您的網絡服務器具有繼承的多線程功能,可避免您實施自己的線程來處理上傳。 但是,請確保多個請求不使用相同的資源(不要將所有上載的文件寫入同一tmp文件中.....)

為避免將數據保存到數據庫時出現問題,請使用連接池。

所以是的,您需要線程,但是如果您的設計很好,那么所有線程都將由您的框架處理

究竟。 每個HTTP請求本身已經是一個線程。 請記住,Web容器在應用程序的生命周期內將僅創建一個servlet實例,並且該Servlet代碼在所有請求之間共享。 這意味着任何類級變量或靜態變量都將在所有請求之間共享。 如果您有這樣一個變量,則它不是線程安全的。 您需要在方法級別聲明特定於請求的變量threadlocal。

至於JDBC:只需編寫可靠的代碼,一切就可以順利進行。 使用連接池僅對提高連接性能有用(相信,我確實值得付出努力,連接數據庫是一項相當昂貴的任務,可能要花費至少200ms甚至更長的時間,同時從池中重用連接成本幾乎沒有)。 它只對您編寫的代碼的線程安全性沒有任何影響,仍然在您的控件/手中。 為了清楚地了解如何正確地進行基本的JDBC編碼,您可能會發現本文很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM