# Package org.optaplanner.core.impl.solver.termination

- Interface Summary
  Interface | Description
  --- | ---
  Termination<Solution_> | A Termination determines when a `Solver` or a `Phase` should stop.

- Class Summary
  Class | Description
  --- | ---
  AbstractCompositeTermination<Solution_> | Abstract superclass that combines multiple `Termination`s.
  AbstractTermination<Solution_> | Abstract superclass for `Termination`.
  AndCompositeTermination<Solution_> |
  BasicPlumbingTermination<Solution_> | Concurrency notes: Condition predicate on (`BasicPlumbingTermination.problemFactChangeQueue` is not empty or `BasicPlumbingTermination.terminatedEarly` is true).
  BestScoreFeasibleTermination<Solution_> |
  BestScoreTermination<Solution_> |
  ChildThreadPlumbingTermination<Solution_> |
  OrCompositeTermination<Solution_> |
  PhaseToSolverTerminationBridge<Solution_> |
  ScoreCalculationCountTermination<Solution_> |
  StepCountTermination<Solution_> |
  TerminationFactory<Solution_> |
  TimeMillisSpentTermination<Solution_> |
  UnimprovedStepCountTermination<Solution_> |
  UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination<Solution_> |
  UnimprovedTimeMillisSpentTermination<Solution_> |