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] |