рдЬрд╛рд╡рд╛ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдзрд╛рдЧрд╛-рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдЕрдЪреНрдЫрд╛ рджрд┐рди рд╣реИ, рдкреНрд░рд┐рдп рд╣реИрдмреНрд░рд┐рдЯрд╛рдЯреЗрд▓ред

рдПрдХ рдареАрдХ рдХрд╛рд░реНрдп рджрд┐рд╡рд╕, рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдиреЗ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рд╕рдВрддреБрд▓рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдЙрди рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ рдФрд░ рдПрдХ рдирдП рдЕрдиреБрд░реЛрдз рдкрд░ рдЕрдЧрд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдЬрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВред



рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓реЗ, рдЬреЛ рдирд┐рдореНрди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рд╛ рд╣реБрдЖ рдерд╛:

public synchronized Entity getNext_Iterator(){ if (!it.hasNext()) { it = objectList.iterator(); } return it.next(); }
      
      







рдпрд╣рд╛рдБ рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд┐рд╕реНрдЯ рдЙрдкрд▓рдмреНрдз рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред



рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдореБрдЭреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛:

  1. рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рдЙрдкрд▓рдмреНрдз рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕ рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реЛрддреА рд╣реИред рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рдЙрдВрдЯрд░ рдПрдЯреЛрдорд┐рдХрдЗрдВрдЯрд░рдЬрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ 0 рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
  2. рд╕рд░реНрд╡рд░ рдкрддреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп, рдХрд╛рдЙрдВрдЯрд░ 1 рд╕реЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рдХрд░реЗрдВред рд╣рдо рд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред




рдЕрдм рд╕реАрдзреЗ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб ( relgames рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж):



  private final AtomicInteger position = new AtomicInteger(0); private volatile int listSize; ... public synchronized void init(List<Entity> objects) { ... listSize = objectList.size(); ... } } public Entity getNext() { return objectList.get(getNextPosition()); } public final int getNextPosition() { for (;;) { int current = position.get(); int next = current + 1; if(next >= listSize){ next = 0; } if (position.compareAndSet(current, next)) return current; } }
      
      







рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓реЛрдб рдХреЗ рддрд╣рдд рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдкрд░реАрдХреНрд╖рдг рдкрджреНрдзрддрд┐ рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрддреЗ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдереНрд░реЗрдбреНрд╕ (1 рд╕реЗ 991 рддрдХ) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1,000,000 рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдкрддреЗ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╕рдордп рдорд╛рдкрд╛ рдЧрдпрд╛ рдерд╛ред



рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЧреНрд░рд╛рдл рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдпрд╣рд╛рдБ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрддред

рд╡рд╣ рдбреЗрдЯрд╛ рдЬрд┐рд╕ рдкрд░ рд░реЗрдЦрд╛рдВрдХрди рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдпрд╣рд╛рдБ рд╣реИ ред



рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред



рдкреБрдирд╢реНрдЪ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдФрд░ рджреЛрдиреЛрдВ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЧреНрд░рд╛рдл рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рд╣реИред



рдпреБрдкреАрдбреА:

рдкреБрд░рд╛рдирд╛ рд╢реЗрдбреНрдпреВрд▓ рдпрд╣рд╛рдВ рд╣реИ ред рдЕрдиреБрд╕рдВрдзрд╛рди рддрдм рдПрдХ рдзреАрдореА рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



All Articles