iT邦幫忙

0

獎項數量問題

c#
  • 分享至 

  • xImage

想請問一下有大大遇過關於抽獎的問題嗎?
若多人同時抽獎 且獎項有數量時
要如何去判斷獎項的數量剩餘多少
如獎項數量為2個
A B C 三人同時抽獎 A抽完-1 B抽完-1 正常來說C應該要抽不到
可是假如同時抽的話,會同時間A-1 B-1的情況發生
想請問什麼時間點計算獎項數量比較好

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

5
石頭
iT邦高手 1 級 ‧ 2021-09-29 22:34:02

你可以使用 如果是單機可以使用 lock or CAS 解決你的問題.

如果是多台Server看你的請求量 簡單處理可以使用 DB Isolation & lock
高併發就是另外的問題了....

我這邊有對於 lock and CAS 寫篇文章你可以參考

https://isdaniel.github.io/high-concurrency-atomic-cas-algorithm/

感謝大大文章,茅塞頓開
不過最後一段

我慢慢可以理解為什麼Redis,Node.js一開始要使用sigel Thread來運作了…

是不是有錯字?

石頭 iT邦高手 1 級 ‧ 2021-09-30 10:42:09 檢舉

哈哈 是的 感謝抓出錯字 已經更版了

0

我的想法是....何謂同時抽?
時間欄位精細度高的狀態下,應該不太有機會同一個時間處理兩個抽獎~
也就是一次只需處理一個抽獎且立馬將數量扣掉換給下一個。

如果真有同時狀況,我想知道什麼狀況下可以同時抽~以及坐等其他大大提供解法XD

石頭 iT邦高手 1 級 ‧ 2021-09-30 10:43:11 檢舉

我想提問者是想要問說 在多執行緒程式中 如何處理物件競爭

我要發表回答

立即登入回答