请教多线程JAVA问题

2019-03-25 13:34|来源: 网路

需求:

命令队列(存放n个命令,ip 端口 命令ID等信息),通过多线程scoket(线程数是20个).从命令队列里面取出 命令,解析执行。


连接的服务器,连接数是有限制的最大2个连接。所以scoket 必须维持长连接


最多可以有20个线程 连接20个不同IP的机器。但机器是N个。

问题1  怎么在多线程中维持长连接发送 接收数据,相同IP的命令发送接收完后需要断开连接。

问题补充:每台机器的最大连接数是 2个连接

相关问答

更多
  • java多核多线程[2022-05-09]

    1. Java不存在所谓的多核上的多线程。你能做的只有写出多线程的程序,至于是在单核上运行还是在多核上运行,程序上看不出来,那个是由JRE决定的。 2. 没法判断哪个线程正在哪一个CPU上运行,任何程序都做不到。一个线程一次也只能运行千分之一秒,不可能一直占用CPU,下一次运行也许就不是上一次的核,所以没法判断。
  • Java多线程问题[2022-05-03]

    因为程序有等待。 比如你去查数据库,数据库返回数据之前会有一段等待时间,这段时间就可以执行其他的线程,这样就很快了。 其实一个cpu中,所有指令都是一条条执行的。
  • 用同步就行了
  • JAVA多线程编程[2022-03-08]

    多线程程序中,如您说的四线程,2个对一个变量加1,2个对一个变量减1,如果这个变量声明的时候加了synchronized关键字,那么这个变量同时只能有一个线程访问,其他的线程会排队,如果没加,那么可能出现同时操作一个变量的情况,举例来说,1个加的线程和一个减的线程同时对一个值为3的变量进行操作,可能的结果是4或2.
  • 并发需要用多线程实现。 web开发一般是不用多线程,不过个别特殊的功能可能要用。
  • 并发需要用 多线程实现。 web开发一般是不用多线程,不过个别特殊的功能可能要用。
  • java多线程理解[2022-02-28]

    java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。 一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。 Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法: Thread t = new Thread(); t.start(); start()方法是一个nat ...
  • 如果是单节点的,利用多线程的就可以了。mpi一般使用在多节点上的,就是好几个工作站一起计算的时候,采用mpi实现。 多线程操作系统是自动分配cpu的,可以实现一台电脑上的分配。 mpi的通讯在以电脑上的速度肯定比不上多线程的,因为线程的通讯可以基于共享内存的。
  • 多线程的同步锁通过synchronized实现 有俩种方式 一种是在代码块加锁 代码块加锁时可以指定任意类的实例过的对象 即锁在这个对象上(任何对象都有一个锁) 使同一时间内只有一个线程可以访问到代码块中 另外一种就是以synchronized关键字修饰方法 这时加锁的对象就是类本身的实例 即this 以上 O(∩_∩)O
  • 1、 认识Thread和Runnable Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来,调用start()方法即可以启动一个线程。 Thread Test = new Thread(); Test.start(); 在使用Runnable的时候需要先new一个实现Runna ...