沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 8:26 AM
[44]
多執行序的部分處理起來好麻煩......
掰噗~
@baipu
說
Mon, May 31, 2021 8:27 AM
囧吱吱
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 8:27 AM
開始進行花式wait (???
米斯月☠鸚鵡腦
@kuasa
Mon, May 31, 2021 8:34 AM
是時候拿筷子戳死哲學家了(x
匿名巴格
@cf6dd62b
Mon, May 31, 2021 8:37 AM
舞喵🐾ꉂ(ˊᗜˋ*)
: 花式wait不就是代表多工性很差嗎XD"
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 8:38 AM
匿名巴格
: 看原本的設計圖了,是真的有遇到硬要把互相等來等去的東西做多工的
最後弄是弄出來了
快個5%左右吧
然而wwwwwwwww
匿名巴格
@cf6dd62b
Mon, May 31, 2021 8:38 AM
Mon, May 31, 2021 8:38 AM
就看這5%有沒有假直(欸)
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 9:59 AM
呃呃....
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:01 AM
我的工作室把單工改多工
就是照一張照片照完之後處理要花很多時間,所以讓他背景處理,讓下一張照片可以開始照
目前遇到的麻煩是,我用來判斷UI是否要開的一個計數器,跟resume app的部分會lock同一個東西
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:01 AM
難搞
六月雪果茶
@wts
Mon, May 31, 2021 10:08 AM
先不管哲學家了 他們這樣違反防疫原則
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 10:20 AM
邏輯上感覺背景作業的是直接切斷跟ui的聯繫,然後原本是拍照完做完以後resume改成拍照完直接resume
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:30 AM
舞喵🐾ꉂ(ˊᗜˋ*)
: 狀況是這樣
拍照(很快)→處理(很久)
所以可能有三張照片都拍好了可是在處理
UI的部分行為需要在所有照片都拍好的時候來設置,所以沒辦法完全拆開
目前有一些想法了,明天試試看
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 10:31 AM
想像中是否UI會顯示一個拍好的照片在那邊,可是還沒處理完不會有wwww
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:31 AM
舞喵🐾ꉂ(ˊᗜˋ*)
: UI會顯示一個假的照片在那(
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 10:31 AM
只好先做loading假貨放在那
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 10:31 AM
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:33 AM
其實我在想用別的東西來當計數器就好(诶
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 10:33 AM
沐茗@煙燻機器人
: 就fork一個新的出來(欸
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:35 AM
整理一下說法,現在狀況是
原本的架構:
拍照時,在完成之前會有一個圖案在轉圈圈,取完照片處理完之後那個東西要被關掉,而如果拍照失敗也會來中斷它
但是現在變成多張在處理,所以有可能第一張照片處理失敗,但這邊正在轉第三張照片的圈圈,就不應該要關掉轉圈圈的畫面,計數器是用在這邊
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:36 AM
(其他還有一些類似的情況
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:37 AM
突然發現,我好像把處理UI的東西丟到另一個Thread就可以了耶
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:39 AM
明天再仔細想
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 10:40 AM
那個圈圈專門開一個thread給處理相片的用ww
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:42 AM
那個圈圈應該是獨立的,但是要對它設定之前要拿Session count,拿Session會lock Session,是這個造成Deadlock(有另一個順序反過來的Lock我沒提,那個不太能動
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:43 AM
另外這個問題的複製方法看起來好像是→拍照→照片完成之前pause app再resume app
此時拍照會先鎖A再鎖B
resume app這件事會先鎖B再鎖A,造成Deadlock
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:46 AM
如果把UI更新的部分拆到自己的thread,就會變成
Task1: 拍照(會鎖A),會開另一個條Thread,稱為Task2,讓那條Thread去鎖B跟處理UI
Task3: resume app會先鎖B再鎖A,原本會Dead lock的情況會變成
Task1鎖A
Task3鎖B, 等A
Task1產生Task2之後完成並釋放A
Task2等B
Task3取得A,執行完成,釋放A跟B
Task2取得B,執行完成
沐茗@煙燻機器人
@blue61
Mon, May 31, 2021 10:46 AM
應該會是這樣
舞喵🐾ꉂ(ˊᗜˋ*)
@SanityCheck
Mon, May 31, 2021 11:10 AM
(???
克里斯蒂安公爵的帕妃小騎士
@pafichin
Mon, May 31, 2021 1:09 PM
六月雪果茶
: 被忽略了
載入新的回覆
多執行序的部分處理起來好麻煩......
最後弄是弄出來了
快個5%左右吧
然而wwwwwwwww
就是照一張照片照完之後處理要花很多時間,所以讓他背景處理,讓下一張照片可以開始照
目前遇到的麻煩是,我用來判斷UI是否要開的一個計數器,跟resume app的部分會lock同一個東西
拍照(很快)→處理(很久)
所以可能有三張照片都拍好了可是在處理
UI的部分行為需要在所有照片都拍好的時候來設置,所以沒辦法完全拆開
目前有一些想法了,明天試試看
只好先做loading假貨放在那原本的架構:
拍照時,在完成之前會有一個圖案在轉圈圈,取完照片處理完之後那個東西要被關掉,而如果拍照失敗也會來中斷它
但是現在變成多張在處理,所以有可能第一張照片處理失敗,但這邊正在轉第三張照片的圈圈,就不應該要關掉轉圈圈的畫面,計數器是用在這邊
此時拍照會先鎖A再鎖B
resume app這件事會先鎖B再鎖A,造成Deadlock
Task1: 拍照(會鎖A),會開另一個條Thread,稱為Task2,讓那條Thread去鎖B跟處理UI
Task3: resume app會先鎖B再鎖A,原本會Dead lock的情況會變成
Task1鎖A
Task3鎖B, 等A
Task1產生Task2之後完成並釋放A
Task2等B
Task3取得A,執行完成,釋放A跟B
Task2取得B,執行完成