Difference between revisions of "Threads and Executors"
Jump to navigation
Jump to search
implement
implement
implement
implement
implement
implement
implement
Line 5: | Line 5: | ||
=Threads= | =Threads= | ||
==class SimpleThreadFactory== | ==class SimpleThreadFactory== | ||
+ | ===video=== | ||
+ | [https://wustl.box.com/s/pngsojhj8291qj8q78ypmzl0jd1l69sw Thread Start and Join] | ||
+ | |||
===implement <code>Thread newThread(Runnable target)</code>=== | ===implement <code>Thread newThread(Runnable target)</code>=== | ||
Revision as of 06:51, 25 September 2017
Contents
- 1 Where To Start
- 2 Threads
- 3 Executors
- 3.1 XNucleobaseCount
- 3.1.1 note countSequential
- 3.1.2 implement int countRangeSequential(byte[] chromosome, Nucleobase nucleobase, int min, int max)
- 3.1.3 implement int count2WaySplit(ExecutorService executor, byte[] chromosome, Nucleobase nucleobase)
- 3.1.4 implement int countNWaySplit(ExecutorService executor, byte[] chromosome, Nucleobase nucleobase, int numTasks)
- 3.1.5 implement int countDivideAndConquer(ExecutorService executor, byte[] chromosome, Nucleobase nucleobase, int threshold)
- 3.1.6 implement int countDivideAndConquerKernel(ExecutorService executor, byte[] chromosome, Nucleobase nucleobase, int min, int max, int threshold)
- 3.2 XQuicksort
- 3.1 XNucleobaseCount
Where To Start
ThreadsAndExcutorsTestSuite
Threads
class SimpleThreadFactory
video
implement Thread newThread(Runnable target)
Create and return a new thread with the target Runnable parameter you are passed.
Do *NOT* start this thread.
Certainly, do *NOT* run this thread.
Do not pass Go. Do not collect $200.
To repeat: just create a new Thread with the target Runnable and return it.
TAgeSum
implement int sumUpperLowerSplit(int[] ages, ThreadFactory threadFactory)
You will need use the passed in ThreadFactory to create a new thread or two (at your preference), start any threads you create, and join them.
Think about where you need to start and join any Threads to ensure both correctness and an appropriate amount of parallelism.
Executors
XNucleobaseCount
note countSequential
public static int countSequential(byte[] chromosome, Nucleobase nucleobase) { return countRangeSequential(chromosome, nucleobase, 0, chromosome.length); }