作者swallowcc (罹患重度能年病的燕叔)
看板java
標題[問題] socket server synchronized
時間Thu Mar 5 11:52:07 2015
程式碼
http://chopapp.com/#b5mmn5fj
大家好~
最近工作上可能有這個需求,所以開始研究 socket。
不過以往沒有碰過這個技術,在這有些問題想請教一下大家。
因為未來可能會有大量資料回傳的狀況,
所以很好奇 example 48行的 synchronized 這段,
在回傳資料量大時,會影響到處理速度嗎?如果拿掉有可能會有什麼風險?
還是說在這個地方有其他的技術可以參考?@@>
另外拿到資料(json object)轉成 bean 之後寫入db,
在資料量大的狀況下,實務上是會拿到一筆寫一次?還是會累積起來再一起寫?
有其他沒考量到的地方,也請給點建議,感恩~ XD
-
framework有用到spring/hibernate
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.9.229
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1425527532.A.0A1.html
1F:推 banjmin: 你的架構有問題 應該是在accept之後開thread 傳入socket 03/05 12:45
2F:→ banjmin: 去處理跟一個client的互動 而ServerSocket本身thread要繼 03/05 12:45
3F:→ banjmin: 續等待其他請求 也用不到synchronized去lock ServerSocke 03/05 12:45
4F:→ banjmin: t物件 03/05 12:45
不好意思,看了其他的sample也沒這麼寫,看來是找到不太好的例子 囧rz
5F:推 now99: 不過要注意 一個連線開一個thread量大thread會過多的問題 03/05 21:13
有什麼預防方式嘛?或者該說一般怎麼處理這個問題?
因為我的狀況很有可能會持續從不同的地方有很多連線進來...
※ 編輯: swallowcc (49.215.57.102), 03/05/2015 22:02:00
6F:推 banjmin: 只能試試加大vm option記憶體和ThreadPool來設一個最大 03/06 02:05
7F:→ banjmin: 的處理數量 03/06 02:05
8F:→ VilleBez: 給你參考我之前POP3 Server Socket與Thread Pool的實做 03/23 16:32