[問題] socket server synchronized

看板java作者 (罹患重度能年病的燕叔)時間10年前 (2015/03/05 11:52), 10年前編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
程式碼 http://chopapp.com/#b5mmn5fj 大家好~ 最近工作上可能有這個需求,所以開始研究 socket。 不過以往沒有碰過這個技術,在這有些問題想請教一下大家。 因為未來可能會有大量資料回傳的狀況, 所以很好奇 example 48行的 synchronized 這段, 在回傳資料量大時,會影響到處理速度嗎?如果拿掉有可能會有什麼風險? 還是說在這個地方有其他的技術可以參考?@@> 另外拿到資料(json object)轉成 bean 之後寫入db, 在資料量大的狀況下,實務上是會拿到一筆寫一次?還是會累積起來再一起寫? 有其他沒考量到的地方,也請給點建議,感恩~ XD - framework有用到spring/hibernate -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.9.229 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1425527532.A.0A1.html

03/05 12:45, , 1F
你的架構有問題 應該是在accept之後開thread 傳入socket
03/05 12:45, 1F

03/05 12:45, , 2F
去處理跟一個client的互動 而ServerSocket本身thread要繼
03/05 12:45, 2F

03/05 12:45, , 3F
續等待其他請求 也用不到synchronized去lock ServerSocke
03/05 12:45, 3F

03/05 12:45, , 4F
t物件
03/05 12:45, 4F
不好意思,看了其他的sample也沒這麼寫,看來是找到不太好的例子 囧rz

03/05 21:13, , 5F
不過要注意 一個連線開一個thread量大thread會過多的問題
03/05 21:13, 5F
有什麼預防方式嘛?或者該說一般怎麼處理這個問題? 因為我的狀況很有可能會持續從不同的地方有很多連線進來... ※ 編輯: swallowcc (49.215.57.102), 03/05/2015 22:02:00

03/06 02:05, , 6F
只能試試加大vm option記憶體和ThreadPool來設一個最大
03/06 02:05, 6F

03/06 02:05, , 7F
的處理數量
03/06 02:05, 7F

03/23 16:32, , 8F
給你參考我之前POP3 Server Socket與Thread Pool的實做
03/23 16:32, 8F

03/23 16:32, , 9F
文章代碼(AID): #1KzzBi2X (java)
文章代碼(AID): #1KzzBi2X (java)