Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
multi thread với Transaction
transaction.begin: thực tế là execute query: set auto commit = false
cộng trừ tiền
transaction.commit: commit kết quả vào db
hôm trước anh bảo rằng là đoạn này có vấn đề nếu đa luồng, em k hiểu, bây giờ 2 threads cùng tạo 2 transaction thực thi, transaction nào chạy trước thì lock lại thôi ạ
  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Professional
tvd12 Professional
set auto commit = false không có nghĩa là tạo ra một transaction, nó chỉ báo cho DB server biết rằng các câu lệnh tiếp theo sẽ không được auto commit mà phải đợi khi có lệnh commit được gọi. Như ở trong thời điểm set auto commit = false thì em có 2 thread thì không có lock nào ở đây cả.
  • 1
  • Reply