小编and*_*att的帖子

为什么ThreadPoolExecutor会在keepAliveTime之后减少corePoolSize以下的线程?

我一直在使用ThreadPoolExecutor和JDK6来解决线程池的不同策略.我有一个优先级队列工作,但不知道我是否喜欢keepAliveTime之后池的大小(你得到的是无限队列).所以,我正在使用LinkedBlockingQueue和CallerRuns策略查看ThreadPoolExecutor.

我现在遇到的问题是,池正在升级,因为文档解释了它应该,但是在任务完成并且keepAliveTime发挥作用后,getPoolSize显示池减少到零.下面的示例代码可以让您看到我的问题的基础:

public class ThreadPoolingDemo {
    private final static Logger LOGGER =
         Logger.getLogger(ThreadPoolingDemo.class.getName());

    public static void main(String[] args) throws Exception {
        LOGGER.info("MAIN THREAD:starting");
        runCallerTestPlain();   
    }

    private static void runCallerTestPlain() throws InterruptedException {
        //10 core threads, 
        //50 max pool size, 
        //100 tasks in queue, 
        //at max pool and full queue - caller runs task
        ThreadPoolExecutor tpe = new ThreadPoolExecutor(10, 50,
            5L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(100),
            new ThreadPoolExecutor.CallerRunsPolicy());

        //dump 5000 tasks on the queue
        for (int i = 0; i < 5000; i++) …
Run Code Online (Sandbox Code Playgroud)

java multithreading jdk1.6 keep-alive threadpool

9
推荐指数
1
解决办法
2860
查看次数

你能为maven exec插件定义exec和java目标吗?

我正在尝试使用maven exec插件执行一些任务.一种是运行脚本来生成应用程序将使用的一些外部数据.第二个是在编译阶段运行一大块java代码来做一些方便的工作.

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
    <execution>
        <id>data_for_app</id>
        <phase>generate-sources</phase>
        <goals>
            <goal>exec</goal>
        </goals>
        <configuration>
            <executable>${basedir}/scripts/getappdata.sh</executable>
            <arguments>
                <argument>${basedir}/src/main/webapp/WEB-INF/xml/appdatahere/</argument>
            </arguments>
        </configuration>
    </execution>
    <execution>
        <id>do_convenience</id>
        <phase>compile</phase>
        <goals>
            <goal>java</goal>
        </goals>
        <configuration>
            <mainClass>com.example.DoConvenienceStuff</mainClass>
            <arguments>
                <argument>https://example.com/data</argument>
            </arguments>
        </configuration>
    </execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时:

mvn clean package exec:exec
Run Code Online (Sandbox Code Playgroud)

我收到错误:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project jss: The parameters 'executable' for goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec are missing or invalid -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

或者类似的错误说参数'mainClass'缺失或无效.

java maven-3 exec-maven-plugin

5
推荐指数
1
解决办法
5173
查看次数