Thread pools on the JVM should usually be divided into the following three categories:
- CPU-bound
- Blocking IO
- Non-blocking IO polling
Each of these categories has a different optimal configuration and usage pattern.
//DEPS com.jayway.jsonpath:json-path:2.1.0 | |
import com.jayway.jsonpath.JsonPath; | |
import com.jayway.jsonpath.ReadContext; | |
import java.util.List; | |
public class JsonPathTest { | |
public static void main(String[] args) { | |
String json = "{\"phoneNumbers\": [\"a\", 1, false, \"\", null, \"hi\", -1]}"; | |
ReadContext ctx = JsonPath.parse(json); |
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2 | |
... | |
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2-1119294797 |
... | |
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ module-two --- | |
[INFO] Deploying com.snaplogic:module-two:1.0-SNAPSHOT at end | |
[INFO] ------------------------------------------------------------------------ | |
[INFO] Reactor Summary: | |
[INFO] | |
[INFO] module-one ......................................... SUCCESS [ 3.477 s] | |
[INFO] pom-root ........................................... SUCCESS [ 0.228 s] | |
[INFO] module-two ......................................... SUCCESS [ 1.446 s] | |
[INFO] ------------------------------------------------------------------------ |
> mvn clean deploy | |
[MVNVM] Using maven: 3.5.2 | |
[INFO] Scanning for projects... | |
[INFO] ------------------------------------------------------------------------ | |
[INFO] Reactor Build Order: | |
[INFO] | |
[INFO] module-one | |
[INFO] pom-root | |
[INFO] module-two | |
[INFO] |
<pluginRepositories> | |
<pluginRepository> | |
<id>apache.snapshots</id> | |
<name>Apache Snapshots</name> | |
<url>http://repository.apache.org/content/groups/snapshots-group/</url> | |
<releases> | |
<enabled>true</enabled> | |
</releases> | |
<snapshots> | |
<enabled>true</enabled> |
<pluginRepositories> | |
<pluginRepository> | |
<id>temp.repo</id> | |
<name>Temp Repo</name> | |
<url>file://${user.home}/.m2/temp-repository</url> | |
</pluginRepository> | |
</pluginRepositories> |
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2 | |
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2 | |
[DEBUG] Imported: < maven.api | |
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2 | |
[DEBUG] Included: org.apache.maven.plugins:maven-deploy-plugin:jar:2.8.2 | |
[DEBUG] Included: backport-util-concurrent:backport-util-concurrent:jar:3.1 | |
[DEBUG] Included: org.codehaus.plexus:plexus-interpolation:jar:1.11 | |
[DEBUG] Included: junit:junit:jar:3.8.1 | |
[DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:3.0.15 | |
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2, parent: sun.misc.Launcher$AppClassLoader@3d4eac69] |
/** | |
* When building with multiple threads, reaching the last project doesn't have to mean that all projects are ready | |
* to be deployed | |
*/ | |
private static final AtomicInteger readyProjectsCounter = new AtomicInteger(); | |
... | |
public void execute() | |
throws MojoExecutionException, MojoFailureException { |
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2-932771130 | |
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2-932771130 | |
[DEBUG] Imported: < maven.api | |
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2-932771130 | |
[DEBUG] Included: org.apache.maven.plugins:maven-deploy-plugin:jar:2.8.2 | |
[DEBUG] Included: backport-util-concurrent:backport-util-concurrent:jar:3.1 | |
[DEBUG] Included: org.codehaus.plexus:plexus-interpolation:jar:1.11 | |
[DEBUG] Included: junit:junit:jar:3.8.1 | |
[DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:3.0.15 | |
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2-932771130, parent: sun.misc.Launcher$AppClassLoader@3d4eac69] |