小编ash*_*mca的帖子

关于100个任务的线程创建或线程池

我正在创建一个可以监控100-150个设备的监控应用程序......现在设计一个监控应用程序,我有两种方法: -

  1. 为要监视的每个设备创建一个线程,每个线程将ping(使用ICMP)到设备以了解设备是否在线.这些线程将在特定时间间隔(例如60秒)后无限运行以了解其状态.

  2. 创建线程池,并为每个设备将任务提交给线程池.任务是简单ping到设备.因此,在当前的设计中,任务将超过线程池中的线程.例如,假设有100个要监视的设备,将有100个要监视的任务,并且线程池将有40个线程来完成这100个任务.当然,运行下一组任务的持续时间将使得完成线程池中的所有挂起任务.

哪种方法会更好?

java multithreading threadpool

15
推荐指数
1
解决办法
753
查看次数

用于评估OS的Spring表达式

我想评估OS(操作系统)系统属性来加载环境对应的配置文件.例如,如果操作系统评估为Windows,properties-win.xml则将加载,或者如果操作系统评估为Unix或Linux,properties-unix.xml则将加载.

下面的拼写工作正常

#{(systemProperties['os.name'].indexOf('nix') >= 0 or systemProperties['os.name'].indexOf('nux') >= 0 or systemProperties['os.name'].indexOf('aix') > 0 ) ? 'linux' : 
        ((systemProperties['os.name'].indexOf('Win') >= 0) ? 'windows' : 'Unknow OS')}
Run Code Online (Sandbox Code Playgroud)

但是,为了systemProperties['os.name']每次评估,我想在变量中使用它,然后想要匹配条件.我看到了#this变量用法(http://docs.spring.io/spring-framework/docs/3.0.6.RELEASE/spring-framework-reference/html/expressions.html sec 6.5.10.1)并尝试制作以下内容SPEL

#{systemProperties['os.name'].?((#this.indexOf('nix') >= 0 or #this.indexOf('nux') >= 0 or #this.indexOf('aix') > 0 ) ? 'unix' : 
    (#this.indexOf('win') >= 0) ? 'windows' : 'Unknown')}
Run Code Online (Sandbox Code Playgroud)

但不知何故,它正在给出解析异常.

有人可以提出任何建议吗?

spring

3
推荐指数
1
解决办法
1261
查看次数

为什么Float.valueOf("2.7")> 2.7给我的确如此?

为什么Float.valueOf("2.7") > 2.7给我真实?

    public static void main(String[] args) {
    System.out.println(Float.valueOf("2.7") > 2.7);
    System.out.println(Float.valueOf("2.7") > 2.8);
    System.out.println(Float.valueOf("2.7") > 2.6);
    }
Run Code Online (Sandbox Code Playgroud)

版画

true
false
true.
Run Code Online (Sandbox Code Playgroud)

如果我这样做Float.valueOf("2.7") > Float.valueOf("2.7"),它会让我失意.

任何人都可以帮助我理解这种行为吗?

java

2
推荐指数
1
解决办法
208
查看次数

标签 统计

java ×2

multithreading ×1

spring ×1

threadpool ×1