Imagine that you are asked to clean every nook and corner of your home, all by yourself, without any help. In this case, for how long will your house will remain inaccessible for others (since you don't want any interruptions while the cleaning is going on)?
Now compare yourself to a single thread and your house to the memory allocated to your JVM. If a single thread performs a full GC, your application will witness worst-case latencies.
G1 GC was made the default GC with Java 9, but with a single thread for full GC. With JEP 307, Java 10 makes full G1 GC parallel to improve application latency.
Let's quickly go through the details of G1, so that JEP 307 makes more sense to you.