org.optaplanner.core.impl.localsearch.decider

## Class MultiThreadedLocalSearchDecider<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider<Solution_>
  - - org.optaplanner.core.impl.localsearch.decider.MultiThreadedLocalSearchDecider<Solution_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation

      public class MultiThreadedLocalSearchDecider<Solution_>
      extends LocalSearchDecider<Solution_>

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `assertExpectedStepScore`
    `protected boolean` | `assertShadowVariablesAreNotStaleAfterStep`
    `protected boolean` | `assertStepScoreFromScratch`
    `protected ExecutorService` | `executor`
    `protected CyclicBarrier` | `moveThreadBarrier`
    `protected int` | `moveThreadCount`
    `protected List<MoveThreadRunner<Solution_>>` | `moveThreadRunnerList`
    `protected BlockingQueue<MoveThreadOperation<Solution_>>` | `operationQueue`
    `protected OrderByMoveIndexBlockingQueue<Solution_>` | `resultQueue`
    `protected int` | `selectedMoveBufferSize`
    `protected ThreadFactory` | `threadFactory`

    - ### Fields inherited from class org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider

      `acceptor, assertExpectedUndoMoveScore, assertMoveScoreFromScratch, forager, logger, logIndentation, moveSelector, termination`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MultiThreadedLocalSearchDecider(String logIndentation, Termination termination, MoveSelector moveSelector, Acceptor acceptor, LocalSearchForager forager, ThreadFactory threadFactory, int moveThreadCount, int selectedMoveBufferSize)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected ExecutorService` | `createThreadPoolExecutor()`
    `void` | `decideNextStep(LocalSearchStepScope<Solution_> stepScope)`
    `void` | `phaseEnded(LocalSearchPhaseScope<Solution_> phaseScope)`
    `void` | `phaseStarted(LocalSearchPhaseScope<Solution_> phaseScope)`
    `void` | `setAssertExpectedStepScore(boolean assertExpectedStepScore)`
    `void` | `setAssertShadowVariablesAreNotStaleAfterStep(boolean assertShadowVariablesAreNotStaleAfterStep)`
    `void` | `setAssertStepScoreFromScratch(boolean assertStepScoreFromScratch)`

    - ### Methods inherited from class org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider

      `doMove, getAcceptor, getForager, getMoveSelector, getTermination, pickMove, setAssertExpectedUndoMoveScore, setAssertMoveScoreFromScratch, solvingEnded, solvingStarted, stepEnded, stepStarted`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### threadFactory

          protected final ThreadFactory threadFactory

    - #### moveThreadCount

          protected final int moveThreadCount

    - #### selectedMoveBufferSize

          protected final int selectedMoveBufferSize

    - #### assertStepScoreFromScratch

          protected boolean assertStepScoreFromScratch

    - #### assertExpectedStepScore

          protected boolean assertExpectedStepScore

    - #### assertShadowVariablesAreNotStaleAfterStep

          protected boolean assertShadowVariablesAreNotStaleAfterStep

    - #### operationQueue

          protected BlockingQueue<MoveThreadOperation<Solution_>> operationQueue

    - #### resultQueue

          protected OrderByMoveIndexBlockingQueue<Solution_> resultQueue

    - #### moveThreadBarrier

          protected CyclicBarrier moveThreadBarrier

    - #### executor

          protected ExecutorService executor

    - #### moveThreadRunnerList

          protected List<MoveThreadRunner<Solution_>> moveThreadRunnerList

  - ### Constructor Detail

    - #### MultiThreadedLocalSearchDecider

          public MultiThreadedLocalSearchDecider(String logIndentation,
                                                 Termination termination,
                                                 MoveSelector moveSelector,
                                                 Acceptor acceptor,
                                                 LocalSearchForager forager,
                                                 ThreadFactory threadFactory,
                                                 int moveThreadCount,
                                                 int selectedMoveBufferSize)

  - ### Method Detail

    - #### setAssertStepScoreFromScratch

          public void setAssertStepScoreFromScratch(boolean assertStepScoreFromScratch)

    - #### setAssertExpectedStepScore

          public void setAssertExpectedStepScore(boolean assertExpectedStepScore)

    - #### setAssertShadowVariablesAreNotStaleAfterStep

          public void setAssertShadowVariablesAreNotStaleAfterStep(boolean assertShadowVariablesAreNotStaleAfterStep)

    - #### phaseStarted

          public void phaseStarted(LocalSearchPhaseScope<Solution_> phaseScope)

      Overrides:
        `phaseStarted` in class `LocalSearchDecider<Solution_>`

    - #### phaseEnded

          public void phaseEnded(LocalSearchPhaseScope<Solution_> phaseScope)

      Overrides:
        `phaseEnded` in class `LocalSearchDecider<Solution_>`

    - #### createThreadPoolExecutor

          protected ExecutorService createThreadPoolExecutor()

    - #### decideNextStep

          public void decideNextStep(LocalSearchStepScope<Solution_> stepScope)

      Overrides:
        `decideNextStep` in class `LocalSearchDecider<Solution_>`

Copyright © 2006–2021 JBoss by Red Hat. All rights reserved.