行的延迟和之后两次调用之间的延迟
9.ForkJoinPool和ForkJoinTask
这两个也是一个用来创建线程池的方法,但是不同的是它们执行的线程可以被合并结果,但是他们执行的任务对象就使用其抽象子类,ForkJoinTask的实现抽象子类:RecursiveTask和RecursiveAction。
前者是可以返回结果,后者是无法返回结果的。计算要实现在compare实现的方法中。执行任务之后可以调用ForkJoinPool的invoke方法来提交一个任务,还有一个名为invokeAll()的方法,但是这个方法如何使用我还不是很了解,因为这个All方法调用的 参数是一个Callable对象集合而非ForkJoinTask。
10.线程安全的随机数生成ThreadLocalRandom类
一般情况下使用它的静态方法就可以生成,比如:
ThreadLocalRandom.current().nextLong(100);
生成的是以0为下限和100的上限的随机数。
这个应当是一个线程安全的随机数生辰器,因此可以考虑在并行运算中使用它。