[問題] socket thread相關問題

看板java作者 (門慶)時間8年前 (2017/03/19 20:34), 8年前編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
各位前輩好 小弟目前做出了個手機為主機,arduino*2為客戶端的架構 以socket方式連線。 主要需求為經由內部計時,根據時間傳送資料給arduino 我產生了三個thread 兩個是socket,另一個是計時用 但目前遇到了個難題,我全部的變數都是用global 根據計時用的變數轉換,讓socket thread知道該做什麼事 可是這樣的方式出現了問題,當計時thread改變了變數後, socket卻不能根據改變而傳送資料。 但是,我在過程中主動讓arduino傳送字串給手機時 剛剛手機要說的話卻瞬間傳給arduino。 也就是說, 手機根據計時資料判斷後無法主動傳送字串給arduino 是我用global 變數改變讓各個thread知道該做什麼事情 這方式有誤嗎? 謝謝您的閱讀 ▁ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.230.200 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1489926852.A.B8E.html

03/19 21:30, , 1F
二個thread各有變數,set後thread判斷才送。
03/19 21:30, 1F
請問是什麼意思呢?是我要用區域變數去讀取那全域變數嗎?

03/19 21:48, , 2F
你的計時thread改變數時,socket thread在做什麼?
03/19 21:48, 2F

03/19 21:49, , 3F
socket thread是有不斷在檢查那變數有沒有變?
03/19 21:49, 3F
socket是利用一個無窮迴圈不斷循環的。就while(socket.isconnected())內。這樣方式 有問題嗎?

03/19 22:23, , 4F
你應該是做一個推送的MAP THREAD去找各自KEY的內容
03/19 22:23, 4F

03/19 22:23, , 5F
才不會出問題
03/19 22:23, 5F
有其他簡單的做法嗎?我要傳遞的變數非常非常少。 ※ 編輯: mentchin (180.204.209.101), 03/20/2017 16:59:49
文章代碼(AID): #1Opdh4kE (java)
文章代碼(AID): #1Opdh4kE (java)