java - 高并发实时系统涉及到多线程处理,这样合理么?
PHPz
PHPz 2017-04-18 09:18:03
0
2
297

智能硬件设备,需要实时长链接向服务器发送数据,这个设备只要插上电就会向服务器上传数据。
目前的设计方案是服务器接收一个请求,开一个线程。但是刚才用jMeter测试,发现有100个并发线程CPU就跑140%+了。

就想到了用线程池,但是如果用线程池,如果池子里只有100个线程,我有200个设备接入。是不是就意味着有100个设备连不上。

谢谢大家。

PHPz
PHPz

学习是最好的投资!

membalas semua(2)
黄舟

Saya melihat bahawa anda hanya menulis bahawa peranti akan menghantar data ke pelayan, tetapi tidak menulis bahawa pelayan akan menolak data ke peranti Jika ini berlaku, maka tidak mustahil untuk menggunakan protokol HTTP. Jika terdapat permintaan dua hala, tetapi data dimuat naik pada selang waktu tertentu dan tidak dihantar dalam masa nyata, anda boleh mempertimbangkan untuk menggunakan IO tidak menyekat untuk mencapainya Dengan cara ini, respons IO dihantar ke lapisan bawah sistem, dan lapisan Java hanya perlu menghantar data sekali lagi. Hanya buat benang untuk pemprosesan, yang boleh mengurangkan overhed benang. Jika benar-benar terdapat 200 sambungan peranti, 200 peranti akan memuat naik pada masa yang sama dan menghantar data secara berterusan.

PHPzhong

Anda boleh mempertimbangkan konsep coroutine golang

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!