Fork Join technology was introduced with Java version 7, to be able to deal with parallel concurrency.
This technology is based in splitting a task recursively until it is small enough to be performed. The sub-tasks will be executed in parallel in different threads. When the sub-tasks have finished, then a join is invoked to merge the results into one.
Example. The following example is very simple. It consists on a function that calculates consecutive natural numbers in an interval. The class will receive two parameters (number min. and max.). If this interval is greater than 6 (in the example) the task will be split into two sub-tasks.
The class extends RecursiveTask<Long> and implements method compute(). As our class is a task it will be invoked by ForkJoinPool
Output console:
Splitting task
Computing
Result1: 21
Computing
Result1: 57
Result2: 78
Showing posts with label Java7. Show all posts
Showing posts with label Java7. Show all posts
Sunday, 17 April 2016
Thursday, 10 September 2015
Java 7 - NIO - Watcher implementation
One of the new features of Java7 was NIO package.
Java NIO also known as new input output library as is a set of classes defined under package java.nio.* to access files, file attributes and file systems.
The main classes from this package are:
Java NIO also known as new input output library as is a set of classes defined under package java.nio.* to access files, file attributes and file systems.
The main classes from this package are:
- Path - to manage file location and directory hierarchy
- Files - to manage file operations
- Walking the file tree
- Watchers - monitoring the creation/modification/deletion of files
- Copy/Create/Delete files from a directory(atomic operations with synchronization)
- Find files using matcher expressions
In the following example we are going to see how to implement a watcher. This is useful when we need a process to monitor when a file is created/modified or deleted in a directory.
Steps in this example:
1- watch for new files in a directory
2- evaluate the mime type of the file
3- if it is a text file it will be copied to other directory.
Subscribe to:
Posts (Atom)