V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hqtc
V2EX  ›  Java

各位大佬大佬,帮忙看一段 Java 线程池的代码

  •  
  •   hqtc · 2017-08-18 11:18:20 +08:00 · 5388 次点击
    这是一个创建于 2661 天前的主题,其中的信息可能已经有所发展或是发生改变。

    // 初始化执行器

        threadPool = Executors.newFixedThreadPool(PROCESSOR_NUMBER, new ThreadFactory()
        {
            private AtomicInteger seqNo = new AtomicInteger(1);
            
            public Thread newThread(Runnable r)
            {
                return new Thread(r, "Message-Thread-" + seqNo.getAndIncrement());
            }
        });
    

    Fortify 扫描了之后报出如下警告, J2EE Bad Practices:Threads (FORTIFY.J2EE_Bad_Practices--Threads) 0. InCall: Thread()

    请问该怎么改啊?

    6 条回复    2017-08-19 10:53:14 +08:00
    hustlike
        1
    hustlike  
       2017-08-18 11:35:19 +08:00
    感觉这个是 Fortify 的问题啊,没有识别出这里是线程池,估计是觉得自己创建线程不是 best practice 吧。
    palmers
        2
    palmers  
       2017-08-18 11:41:11 +08:00
    好像是说你创建线程的时候方式不太好 可能是因为没有指定 Group 这方面区别我也不是很清楚 你自己看下
    hqtc
        3
    hqtc  
    OP
       2017-08-18 11:43:01 +08:00
    @hustlike 哎对啊,我看这段代码意思只是给后面要执行的线程绑定一个带编号的名字而已,又没有 start() 和 run()... 感觉要自定义一个 Thread 子类了,不知道能不能消掉警告,哎,就很烦
    hqtc
        4
    hqtc  
    OP
       2017-08-18 11:46:02 +08:00
    @palmers 不是很理解 Group ,没用过
    SoloCompany
        5
    SoloCompany  
       2017-08-18 22:53:12 +08:00 via iPad
    没办法,j2ee 的规范之一貌似是 webapp 不能自己管理线程,即使非禁止

    如果你写的不是 webapp,那就是 fo   rtify 没配置好啰
    hustlike
        6
    hustlike  
       2017-08-19 10:53:14 +08:00
    @hqtc 可以绕过这个问题,通过第三方的包去做这个事情,不过意义不大……
    guava 就有 ThreadFactoryBuilder
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   949 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:30 · PVG 04:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.