diff --git a/README.md b/README.md index 83b42372..6c180dfa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PP4J [![Build Status](https://travis-ci.org/ViktorC/PP4J.svg?branch=master)](https://travis-ci.org/ViktorC/PP4J) [![Coverage Status](https://coveralls.io/repos/github/ViktorC/PP4J/badge.svg?branch=master)](https://coveralls.io/github/ViktorC/PP4J?branch=master) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.viktorc/pp4j/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/net.viktorc/pp4j) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.txt) +# PP4J [![Build Status](https://travis-ci.org/ViktorC/PP4J.svg?branch=master)](https://travis-ci.org/ViktorC/PP4J) [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=net.viktorc:pp4j&metric=alert_status)](https://sonarcloud.io/dashboard?id=net.viktorc:pp4j) [![Coverage Status](https://coveralls.io/repos/github/ViktorC/PP4J/badge.svg?branch=master)](https://coveralls.io/github/ViktorC/PP4J?branch=master) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.viktorc/pp4j/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/net.viktorc/pp4j) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.txt) While the standard Java libraries support multithreading based concurrency extensively, they do not support effective multiprocessing out of the box. In many situations, multithreading is sufficient and in fact optimal; however, it can lead to complications due to the fact that threads share the address spaces of their parent processes. Multiprocessing ensures that execution units have their own address spaces and that no data is exchanged between them without explicit inter-process communication. This may be useful if a Java application has to a) execute non-thread-safe or non-reentrant code concurrently or b) invoke native code—whether via JNI/JNA or executable wrapper programs—without running the risk of crashing the main JVM. __PP4J__ (Process Pool for Java) is a multiprocessing library for Java that provides a flexible API and implementations of process pools and process executors to help meet the above requirements. The complete Javadoc can be found [here](http://viktorc.github.io/PP4J/). ## Java Process Pool