作者mentchin (門慶)
看板java
標題[問題] socket thread相關問題
時間Sun Mar 19 20:34:10 2017
各位前輩好
小弟目前做出了個手機為主機,arduino*2為客戶端的架構
以socket方式連線。
主要需求為經由內部計時,根據時間傳送資料給arduino
我產生了三個thread 兩個是socket,另一個是計時用
但目前遇到了個難題,我全部的變數都是用global
根據計時用的變數轉換,讓socket thread知道該做什麼事
可是這樣的方式出現了問題,當計時thread改變了變數後,
socket卻不能根據改變而傳送資料。
但是,我在過程中主動讓arduino傳送字串給手機時
剛剛手機要說的話卻瞬間傳給arduino。
也就是說,
手機根據計時資料判斷後無法主動傳送字串給arduino
是我用global 變數改變讓各個thread知道該做什麼事情
這方式有誤嗎?
謝謝您的閱讀
▁
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.230.200
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1489926852.A.B8E.html
1F:→ pttworld: 二個thread各有變數,set後thread判斷才送。03/19 21:30
請問是什麼意思呢?是我要用區域變數去讀取那全域變數嗎?
2F:→ ssccg: 你的計時thread改變數時,socket thread在做什麼?03/19 21:48
3F:→ ssccg: socket thread是有不斷在檢查那變數有沒有變?03/19 21:49
socket是利用一個無窮迴圈不斷循環的。就while(socket.isconnected())內。這樣方式
有問題嗎?
4F:→ cowbaying: 你應該是做一個推送的MAP THREAD去找各自KEY的內容03/19 22:23
5F:→ cowbaying: 才不會出問題03/19 22:23
有其他簡單的做法嗎?我要傳遞的變數非常非常少。
※ 編輯: mentchin (180.204.209.101), 03/20/2017 16:59:49