討論乙個併發執行緒導致的資料儲存失敗的問題

2021-09-27 01:34:53 字數 271 閱讀 9463

環境:

前端採用非同步提交的方式,將選擇的多個附件分批傳送到服務端

後端採用標準的springmvc架構來處理請求,採用宣告式事務,控制在service層

現象:後台儲存附件資訊到資料庫的時候,總是報主鍵唯一性約束錯誤

分析:後台使用到了乙個uploadentity物件,該物件被配置成了乙個bean,但是沒有配置其scope屬性,所以預設是單例的,那麼在方法中獲取該例項的時候如果有其它執行緒串改了例項的屬性值,就會導致獲取的例項與你預期的不一致,也就出現的執行緒安全的問題。

乙個型別轉換的討論

unsigned char port 0x5a unsigned char result 8 result 8 port 4 在網上參考的文章,在arm下。port 運算時,port會提公升為int型,運算結果result 8 0xfa 實際上,在iar程式設計環境中,當所選處理器架構為arm7時r...

Calendar 導致的乙個bug

查詢不到資料。把calendar生成的date通過gettime 列印出時間戳。因為資料庫裡的資料是每天生成的,所以對應的時間毫秒為0,而calendar生成的時間沒有對毫秒進行set值覆蓋,導致使用到了當前時間的毫秒值。此時由於查詢條件是 導致這部分資料被忽略掉了。由於 calendar.geti...

併發程式設計1 乙個簡單的多執行緒程式

以下是乙個非常簡單的多執行緒程式,實現的是利用新執行緒修改全域性變數,初始執行緒監聽全域性變數並輸出 wait 直到全域性變數的值被新執行緒改變 1 include2 include3 include4 5using namespace std 67 int n 0 8 9void changenu...