/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.Instant ;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println( "Starting. " + Instant.
now() );
ExecutorService es = Executors.newCachedThreadPool();
for ( String message
: messages
) {
es.submit(
( ) -> { System.
out.
println( message
); } );
}
System.
out.
println( "Tasks submitted to executor service. " + Instant.
now() ); try
{
Thread.
sleep( TimeUnit.
SECONDS.
toMillis( 3 ) ); }
{
e.printStackTrace();
}
System.
out.
println( "Done. " + Instant.
now() );
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLkluc3RhbnQgOwppbXBvcnQgamF2YS51dGlsLkxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvclNlcnZpY2U7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnM7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5UaW1lVW5pdDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3lzdGVtLm91dC5wcmludGxuKCAiU3RhcnRpbmcuICIgKyBJbnN0YW50Lm5vdygpICk7CgkJCiAgICAgICAgRXhlY3V0b3JTZXJ2aWNlIGVzID0gRXhlY3V0b3JzLm5ld0NhY2hlZFRocmVhZFBvb2woKTsKCiAgICAgICAgTGlzdCA8IFN0cmluZyA+IG1lc3NhZ2VzID0gTGlzdC5vZiggImFhYWEiICwgImJiYmIiICwgImNjY2MiICk7CiAgICAgICAgZm9yICggU3RyaW5nIG1lc3NhZ2UgOiBtZXNzYWdlcyApCiAgICAgICAgewogICAgICAgICAgICBlcy5zdWJtaXQoCiAgICAgICAgICAgICAgICAgICAgKCApIC0+IHsgU3lzdGVtLm91dC5wcmludGxuKCBtZXNzYWdlICk7IH0KICAgICAgICAgICAgKTsKICAgICAgICB9CgoJCVN5c3RlbS5vdXQucHJpbnRsbiggIlRhc2tzIHN1Ym1pdHRlZCB0byBleGVjdXRvciBzZXJ2aWNlLiAiICsgSW5zdGFudC5ub3coKSApOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgVGhyZWFkLnNsZWVwKCBUaW1lVW5pdC5TRUNPTkRTLnRvTWlsbGlzKCAzICkgKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKCBJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlICkKICAgICAgICB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkRvbmUuICIgKyBJbnN0YW50Lm5vdygpICk7CiAgICAgICAgCgl9Cn0=