cari

Rumah  >  Soal Jawab  >  teks badan

java - 高并发实时系统涉及到多线程处理,这样合理么?

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

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

谢谢大家。

PHPzPHPz2892 hari yang lalu341

membalas semua(2)saya akan balas

  • 黄舟

    黄舟2017-04-18 09:20:03

    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.

    balas
    0
  • PHPz

    PHPz2017-04-18 09:20:03

    Anda boleh mempertimbangkan konsep coroutine golang

    balas
    0
  • Batalbalas