Package edu.rit.pj
Class BarrierAction
java.lang.Object
edu.rit.pj.ParallelConstruct
edu.rit.pj.BarrierAction
Class BarrierAction is the abstract base class for an object containing code
that is executed as part of a barrier wait. A barrier wait occurs in these
situations within a ParallelRegion:
- When the ParallelTeam threads finish executing all the iterations of a parallel for loop.
- When the ParallelTeam threads finish executing all the ParallelSections in a group of parallel sections.
-
When the ParallelTeam threads call the ParallelRegion's
barrier()
method explicitly.
-
If the barrier action is omitted, or if the barrier action is
BarrierAction.WAIT
, each thread stops and waits at the barrier. When all threads have arrived at the barrier, each thread resumes and proceeds to execute whatever comes after the construct. -
If the barrier action is
BarrierAction.NO_WAIT
, nothing happens. The threads do not wait for each other. Each thread immediately proceeds to execute whatever comes after the construct. -
If the barrier action is an instance of class BarrierAction with the
run()
method overridden, each thread stops and waits at the barrier. When all threads have arrived at the barrier, one thread calls the BarrierAction object'srun()
method. The particular thread that calls therun()
method is not specified. During this time the other threads remain stopped. When therun()
method returns, each thread resumes and proceeds to execute whatever comes after the construct.
Thus, the barrier serves to synchronize all the threads at the end of a parallel construct and possibly to execute a section of code in a single thread.
- Version:
- 11-Nov-2007
- Author:
- Alan Kaminsky
-
Field Summary
Modifier and TypeFieldDescriptionstatic final BarrierAction
Do not do a barrier wait.static final BarrierAction
Do a barrier wait, without executing any code in a single thread. -
Constructor Summary
-
Method Summary
Methods inherited from class edu.rit.pj.ParallelConstruct
getThreadCount, getThreadIndex, isExecutingInParallel, region, team
-
Field Details
-
WAIT
Do a barrier wait, without executing any code in a single thread. -
NO_WAIT
Do not do a barrier wait.
-
-
Constructor Details
-
BarrierAction
public BarrierAction()Construct a new barrier action.
-
-
Method Details