2015-07-02 4 views
-3

У меня проблема с java-счетчиком. Как и два потока, общий общий счетчик и увеличивайте его по очереди. Теперь кто-то может показать примеры кода, используя синхронизацию, Locks и AtomicIntegers означает использование другого подхода. Я не получаю никакого хорошего сравнения рабочего кода для этой проблемы. Благодарю.Ядро Java, общий счетчик в многопоточном режиме env

public class ThreadsExample implements Runnable { 
    static AtomicInteger counter = new AtomicInteger(1); 

    public ThreadsExample() { 
    } 

    static void incrementCounter() { 
     System.out.println(Thread.currentThread().getName() + ": " 
       + counter.getAndIncrement()); 
    } 

    @Override 
    public void run() { 
     while (counter.get() < 1000) { 
      incrementCounter(); 
     } 
    } 

    public static void main(String[] args) { 
     ThreadsExample te = new ThreadsExample(); 
     Thread thread1 = new Thread(te); 
     Thread thread2 = new Thread(te); 
     thread1.start(); 
     thread2.start(); 
    } 
} 
+0

Вы читали учебники Oracle по этому вопросу еще? https://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html – Dragondraikk

+0

Что вы пробовали? Начните с AtomicInteger, который довольно прост. –

+0

Java util Atomic library предоставляется для решения этого сценария. check - https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/package-summary.html, доступный с jdk 1.5 –

ответ

0

Рассмотрите возможность использования AtomicInteger для изменения значений атомарно в многопоточной среде.

Предназначение образца,

AtomicInteger counter = new AtomicInteger(0); 
counter.incrementAndGet(); // thread-safe 

Если число нитей более рассматривают использование LongAdder

+0

Я пробовал этот код. Но результаты начинают прикручиваться после того, как счетчик достигает 3-значного значения. Я прошел через документы оракула, но смотрел на рабочий пример, чтобы понять правильно. – pooja

+0

открытый класс ThreadsExample реализует Runnable { статический счетчик AtomicInteger = новый AtomicInteger (1); public ThreadsExample() { } static void incrementCounter() { System.out.println (Thread.currentThread(). GetName() + ":" + counter.getAndIncrement()); } @Override public void run() { while (counter.get() <1000) { incrementCounter(); } } public static void main (String [] args) { ThreadsExample te = new ThreadsExample(); Thread thread1 = new Thread (te); Тема thread2 = new Thread (te); thread1.start(); thread2.start(); }} Счетчик – pooja

0

Концепция: Для того, чтобы гарантировать, что переменная не обновляется с помощью 2-х потоков одновременно , он должен иметь синхронизированный и атомный доступ, а также изменения должны быть видны другим потокам, поэтому переменная должна быть отмечена как volatile, кроме нескольких других вещей.

Java предоставляет java.util.concurrent.atomic, который поможет вам в случае необходимости для одной переменной. Ниже небольшое описание из документации пакета:

Маленький инструментарий классов, поддерживающих безблокировочного поточно- программирование на отдельных переменных. В сущности, классы в этом пакете расширить понятие летучих значений, полей и массива элементов, чтобы те, которые также обеспечивают атомное условное изменению операции

Глядя на вашем требовании, я думаю, что java.util.concurrent.atomic.AtomicInteger должен решить ваш требование. Ниже приведен образец, который я создал для вас, а также o/p.
Пожалуйста, обратите внимание, что

  1. о/р может отличаться на вашем конце, но ключевой момент, чтобы отметить, что вы не увидите повторяющиеся значения в результате.
  2. Я запускаю 4 параллельных потока, и каждый пытается получить доступ и увеличить один и тот же счетчик без какой-либо синхронизации, и ожидаются результаты. И это происходит потому, что мы используем Java атомного java.util.concurrent.atomic.AtomicInteger

Для ответа на Ваш вопрос:

Теперь может кто-то пожалуйста, покажите примеры кода из него с помощью синхронизации, Замков и AtomicIntegers означают использование иного подхода. Я не получаю хорошее сравнение рабочего кода для этой проблемы.

С вашей целью, если вы используете счетчик, вам действительно нужно беспокоиться о синхронизированном коде, замках и т. Д., Вы можете прямо использовать java.util.concurrent.atomic.AtomicInteger.
Если для учебной цели вы хотите знать о синхронизированном коде, замках и т. Д., То это действительно большая тема :) Вы можете прочитать Java's concurrency tutorial.

P.S.: Я проверил код, который вы предоставили, и он работал на меня, так или иначе вы можете проверить код, который я предоставил, и вы должны получить ожидаемые результаты.

import java.util.concurrent.atomic.*; 

public class AtomicSequencer { 
    private final AtomicInteger sequenceNumber = new AtomicInteger(0); 

    public static void main(String[] args) { 
     final AtomicSequencer atom = new AtomicSequencer(); 
     Thread thread1 = new Thread(){ 
      @Override 
      public void run() { 
       atom.next(); 
      } 
     }; 
     Thread thread2 = new Thread(){ 
      @Override 
      public void run() { 
       atom.next(); 
      } 
     }; 
     Thread thread3 = new Thread(){ 
      @Override 
      public void run() { 
       atom.next(); 
      } 
     }; 
     Thread thread4 = new Thread(){ 
      @Override 
      public void run() { 
       atom.next(); 
      } 
     }; 
     thread1.start(); 
     thread2.start(); 
     thread3.start(); 
     thread4.start(); 
    } 

    public void next() { 
     while(sequenceNumber.get() < 1000){ 
      System.out.println("ThreadID " + Thread.currentThread().getId() + " : " + sequenceNumber.getAndIncrement()); 
     } 
    } 

} 

Выход:

ThreadID 8 : 0 
ThreadID 8 : 1 
ThreadID 8 : 2 
ThreadID 8 : 3 
ThreadID 8 : 4 
ThreadID 8 : 5 
ThreadID 8 : 6 
ThreadID 8 : 7 
ThreadID 8 : 8 
ThreadID 8 : 9 
ThreadID 8 : 10 
ThreadID 8 : 11 
ThreadID 8 : 12 
ThreadID 8 : 13 
ThreadID 8 : 14 
ThreadID 8 : 15 
ThreadID 8 : 16 
ThreadID 8 : 17 
ThreadID 8 : 18 
ThreadID 9 : 19 
ThreadID 8 : 20 
ThreadID 8 : 21 
ThreadID 8 : 22 
ThreadID 8 : 23 
ThreadID 8 : 24 
ThreadID 8 : 25 
ThreadID 8 : 26 
ThreadID 8 : 27 
ThreadID 8 : 28 
ThreadID 8 : 29 
ThreadID 8 : 30 
ThreadID 8 : 31 
ThreadID 8 : 32 
ThreadID 8 : 33 
ThreadID 8 : 34 
ThreadID 8 : 35 
ThreadID 8 : 36 
ThreadID 8 : 37 
ThreadID 8 : 38 
ThreadID 8 : 39 
ThreadID 8 : 40 
ThreadID 8 : 41 
ThreadID 8 : 42 
ThreadID 8 : 43 
ThreadID 8 : 44 
ThreadID 8 : 46 
ThreadID 8 : 47 
ThreadID 8 : 49 
ThreadID 8 : 50 
ThreadID 8 : 51 
ThreadID 8 : 52 
ThreadID 8 : 53 
ThreadID 8 : 54 
ThreadID 8 : 55 
ThreadID 8 : 56 
ThreadID 8 : 57 
ThreadID 8 : 58 
ThreadID 8 : 59 
ThreadID 8 : 60 
ThreadID 8 : 61 
ThreadID 8 : 62 
ThreadID 8 : 63 
ThreadID 8 : 64 
ThreadID 8 : 65 
ThreadID 8 : 66 
ThreadID 8 : 67 
ThreadID 8 : 68 
ThreadID 8 : 69 
ThreadID 8 : 70 
ThreadID 8 : 71 
ThreadID 8 : 72 
ThreadID 8 : 73 
ThreadID 8 : 74 
ThreadID 8 : 75 
ThreadID 8 : 76 
ThreadID 8 : 77 
ThreadID 8 : 78 
ThreadID 8 : 79 
ThreadID 8 : 80 
ThreadID 11 : 81 
ThreadID 11 : 83 
ThreadID 11 : 84 
ThreadID 11 : 85 
ThreadID 11 : 86 
ThreadID 11 : 87 
ThreadID 11 : 88 
ThreadID 11 : 89 
ThreadID 9 : 45 
ThreadID 9 : 91 
ThreadID 9 : 92 
ThreadID 9 : 93 
ThreadID 9 : 94 
ThreadID 9 : 95 
ThreadID 9 : 96 
ThreadID 9 : 97 
ThreadID 9 : 98 
ThreadID 9 : 99 
ThreadID 9 : 100 
ThreadID 9 : 101 
ThreadID 9 : 102 
ThreadID 9 : 103 
ThreadID 9 : 104 
ThreadID 9 : 105 
ThreadID 9 : 106 
ThreadID 9 : 107 
ThreadID 9 : 108 
ThreadID 9 : 109 
ThreadID 9 : 110 
ThreadID 9 : 111 
ThreadID 9 : 112 
ThreadID 9 : 113 
ThreadID 9 : 114 
ThreadID 9 : 115 
ThreadID 9 : 116 
ThreadID 9 : 117 
ThreadID 9 : 118 
ThreadID 9 : 119 
ThreadID 9 : 120 
ThreadID 9 : 121 
ThreadID 9 : 122 
ThreadID 9 : 123 
ThreadID 9 : 124 
ThreadID 9 : 125 
ThreadID 9 : 126 
ThreadID 9 : 127 
ThreadID 9 : 128 
ThreadID 9 : 129 
ThreadID 9 : 130 
ThreadID 9 : 131 
ThreadID 9 : 132 
ThreadID 9 : 133 
ThreadID 9 : 134 
ThreadID 9 : 135 
ThreadID 9 : 136 
ThreadID 9 : 137 
ThreadID 9 : 138 
ThreadID 9 : 139 
ThreadID 9 : 140 
ThreadID 9 : 141 
ThreadID 9 : 142 
ThreadID 9 : 143 
ThreadID 9 : 144 
ThreadID 9 : 145 
ThreadID 9 : 146 
ThreadID 9 : 147 
ThreadID 9 : 148 
ThreadID 9 : 149 
ThreadID 9 : 150 
ThreadID 9 : 151 
ThreadID 9 : 152 
ThreadID 9 : 153 
ThreadID 9 : 154 
ThreadID 9 : 155 
ThreadID 9 : 156 
ThreadID 9 : 157 
ThreadID 9 : 158 
ThreadID 9 : 159 
ThreadID 9 : 160 
ThreadID 9 : 161 
ThreadID 9 : 162 
ThreadID 9 : 163 
ThreadID 9 : 164 
ThreadID 9 : 165 
ThreadID 9 : 166 
ThreadID 9 : 167 
ThreadID 9 : 168 
ThreadID 9 : 169 
ThreadID 9 : 170 
ThreadID 9 : 171 
ThreadID 9 : 172 
ThreadID 9 : 173 
ThreadID 9 : 174 
ThreadID 9 : 175 
ThreadID 9 : 176 
ThreadID 9 : 177 
ThreadID 9 : 178 
ThreadID 9 : 179 
ThreadID 9 : 180 
ThreadID 9 : 181 
ThreadID 9 : 182 
ThreadID 9 : 183 
ThreadID 9 : 184 
ThreadID 9 : 185 
ThreadID 9 : 186 
ThreadID 9 : 187 
ThreadID 9 : 188 
ThreadID 9 : 189 
ThreadID 9 : 190 
ThreadID 9 : 191 
ThreadID 9 : 192 
ThreadID 9 : 193 
ThreadID 9 : 194 
ThreadID 9 : 195 
ThreadID 9 : 196 
ThreadID 9 : 197 
ThreadID 9 : 198 
ThreadID 9 : 199 
ThreadID 9 : 200 
ThreadID 9 : 201 
ThreadID 9 : 202 
ThreadID 11 : 90 
ThreadID 9 : 203 
ThreadID 9 : 205 
ThreadID 9 : 206 
ThreadID 9 : 207 
ThreadID 9 : 208 
ThreadID 8 : 82 
ThreadID 8 : 210 
ThreadID 8 : 211 
ThreadID 10 : 48 
ThreadID 10 : 213 
ThreadID 10 : 214 
ThreadID 10 : 215 
ThreadID 10 : 216 
ThreadID 10 : 217 
ThreadID 10 : 218 
ThreadID 10 : 219 
ThreadID 10 : 220 
ThreadID 10 : 221 
ThreadID 10 : 222 
ThreadID 10 : 223 
ThreadID 10 : 224 
ThreadID 10 : 225 
ThreadID 10 : 226 
ThreadID 10 : 227 
ThreadID 10 : 228 
ThreadID 10 : 229 
ThreadID 10 : 230 
ThreadID 10 : 231 
ThreadID 10 : 232 
ThreadID 10 : 233 
ThreadID 8 : 212 
ThreadID 9 : 209 
ThreadID 11 : 204 
ThreadID 9 : 236 
ThreadID 8 : 235 
ThreadID 10 : 234 
ThreadID 8 : 239 
ThreadID 9 : 238 
ThreadID 11 : 237 
ThreadID 9 : 242 
ThreadID 8 : 241 
ThreadID 10 : 240 
ThreadID 8 : 245 
ThreadID 9 : 244 
ThreadID 11 : 243 
ThreadID 11 : 249 
ThreadID 11 : 250 
ThreadID 11 : 251 
ThreadID 11 : 252 
ThreadID 11 : 253 
ThreadID 11 : 254 
ThreadID 9 : 248 
ThreadID 9 : 256 
ThreadID 9 : 257 
ThreadID 9 : 258 
ThreadID 9 : 259 
ThreadID 9 : 260 
ThreadID 9 : 261 
ThreadID 9 : 262 
ThreadID 9 : 263 
ThreadID 9 : 264 
ThreadID 9 : 265 
ThreadID 9 : 266 
ThreadID 8 : 247 
ThreadID 10 : 246 
ThreadID 10 : 269 
ThreadID 10 : 270 
ThreadID 8 : 268 
ThreadID 9 : 267 
ThreadID 11 : 255 
ThreadID 9 : 273 
ThreadID 8 : 272 
ThreadID 10 : 271 
ThreadID 8 : 276 
ThreadID 9 : 275 
ThreadID 11 : 274 
ThreadID 9 : 279 
ThreadID 8 : 278 
ThreadID 10 : 277 
ThreadID 8 : 282 
ThreadID 9 : 281 
ThreadID 11 : 280 
ThreadID 11 : 286 
ThreadID 11 : 287 
ThreadID 9 : 285 
ThreadID 8 : 284 
ThreadID 8 : 290 
ThreadID 8 : 291 
ThreadID 8 : 292 
ThreadID 8 : 293 
ThreadID 8 : 294 
ThreadID 8 : 295 
ThreadID 8 : 296 
ThreadID 10 : 283 
ThreadID 8 : 297 
ThreadID 9 : 289 
ThreadID 11 : 288 
ThreadID 9 : 300 
ThreadID 8 : 299 
ThreadID 10 : 298 
ThreadID 8 : 303 
ThreadID 9 : 302 
ThreadID 11 : 301 
ThreadID 9 : 306 
ThreadID 8 : 305 
ThreadID 10 : 304 
ThreadID 8 : 309 
ThreadID 9 : 308 
ThreadID 11 : 307 
ThreadID 9 : 312 
ThreadID 8 : 311 
ThreadID 10 : 310 
ThreadID 8 : 315 
ThreadID 9 : 314 
ThreadID 11 : 313 
ThreadID 9 : 318 
ThreadID 8 : 317 
ThreadID 10 : 316 
ThreadID 8 : 321 
ThreadID 9 : 320 
ThreadID 11 : 319 
ThreadID 9 : 324 
ThreadID 8 : 323 
ThreadID 10 : 322 
ThreadID 8 : 327 
ThreadID 9 : 326 
ThreadID 11 : 325 
ThreadID 9 : 330 
ThreadID 8 : 329 
ThreadID 10 : 328 
ThreadID 8 : 333 
ThreadID 9 : 332 
ThreadID 11 : 331 
ThreadID 9 : 336 
ThreadID 8 : 335 
ThreadID 10 : 334 
ThreadID 8 : 339 
ThreadID 9 : 338 
ThreadID 11 : 337 
ThreadID 9 : 342 
ThreadID 8 : 341 
ThreadID 10 : 340 
ThreadID 8 : 345 
ThreadID 9 : 344 
ThreadID 11 : 343 
ThreadID 9 : 348 
ThreadID 8 : 347 
ThreadID 10 : 346 
ThreadID 8 : 351 
ThreadID 9 : 350 
ThreadID 11 : 349 
ThreadID 9 : 354 
ThreadID 8 : 353 
ThreadID 10 : 352 
ThreadID 8 : 357 
ThreadID 9 : 356 
ThreadID 11 : 355 
ThreadID 9 : 360 
ThreadID 8 : 359 
ThreadID 10 : 358 
ThreadID 8 : 363 
ThreadID 9 : 362 
ThreadID 11 : 361 
ThreadID 9 : 366 
ThreadID 8 : 365 
ThreadID 10 : 364 
ThreadID 8 : 369 
ThreadID 9 : 368 
ThreadID 11 : 367 
ThreadID 8 : 371 
ThreadID 10 : 370 
ThreadID 8 : 374 
ThreadID 8 : 376 
ThreadID 8 : 377 
ThreadID 8 : 378 
ThreadID 8 : 379 
ThreadID 8 : 380 
ThreadID 8 : 381 
ThreadID 8 : 382 
ThreadID 8 : 383 
ThreadID 8 : 384 
ThreadID 8 : 385 
ThreadID 8 : 386 
ThreadID 8 : 387 
ThreadID 8 : 388 
ThreadID 8 : 389 
ThreadID 8 : 390 
ThreadID 8 : 391 
ThreadID 8 : 392 
ThreadID 8 : 393 
ThreadID 8 : 394 
ThreadID 8 : 395 
ThreadID 8 : 396 
ThreadID 8 : 397 
ThreadID 8 : 398 
ThreadID 9 : 373 
ThreadID 11 : 372 
ThreadID 11 : 401 
ThreadID 11 : 402 
ThreadID 11 : 403 
ThreadID 11 : 404 
ThreadID 11 : 405 
ThreadID 11 : 406 
ThreadID 11 : 407 
ThreadID 9 : 400 
ThreadID 8 : 399 
ThreadID 10 : 375 
ThreadID 8 : 410 
ThreadID 9 : 409 
ThreadID 11 : 408 
ThreadID 9 : 413 
ThreadID 8 : 412 
ThreadID 10 : 411 
ThreadID 8 : 416 
ThreadID 9 : 415 
ThreadID 11 : 414 
ThreadID 9 : 419 
ThreadID 8 : 418 
ThreadID 10 : 417 
ThreadID 8 : 422 
ThreadID 9 : 421 
ThreadID 11 : 420 
ThreadID 9 : 425 
ThreadID 8 : 424 
ThreadID 10 : 423 
ThreadID 8 : 428 
ThreadID 9 : 427 
ThreadID 11 : 426 
ThreadID 9 : 431 
ThreadID 8 : 430 
ThreadID 10 : 429 
ThreadID 8 : 434 
ThreadID 9 : 433 
ThreadID 11 : 432 
ThreadID 9 : 437 
ThreadID 8 : 436 
ThreadID 10 : 435 
ThreadID 8 : 440 
ThreadID 9 : 439 
ThreadID 11 : 438 
ThreadID 9 : 443 
ThreadID 8 : 442 
ThreadID 10 : 441 
ThreadID 8 : 446 
ThreadID 9 : 445 
ThreadID 11 : 444 
ThreadID 9 : 449 
ThreadID 8 : 448 
ThreadID 10 : 447 
ThreadID 8 : 452 
ThreadID 9 : 451 
ThreadID 11 : 450 
ThreadID 9 : 455 
ThreadID 8 : 454 
ThreadID 10 : 453 
ThreadID 8 : 458 
ThreadID 9 : 457 
ThreadID 11 : 456 
ThreadID 9 : 461 
ThreadID 8 : 460 
ThreadID 8 : 464 
ThreadID 8 : 465 
ThreadID 8 : 466 
ThreadID 8 : 467 
ThreadID 8 : 468 
ThreadID 8 : 469 
ThreadID 8 : 470 
ThreadID 8 : 471 
ThreadID 8 : 472 
ThreadID 8 : 473 
ThreadID 8 : 474 
ThreadID 8 : 475 
ThreadID 8 : 476 
ThreadID 8 : 477 
ThreadID 8 : 478 
ThreadID 8 : 479 
ThreadID 8 : 480 
ThreadID 8 : 481 
ThreadID 8 : 482 
ThreadID 8 : 483 
ThreadID 10 : 459 
ThreadID 8 : 484 
ThreadID 9 : 463 
ThreadID 11 : 462 
ThreadID 11 : 488 
ThreadID 11 : 489 
ThreadID 11 : 490 
ThreadID 11 : 491 
ThreadID 11 : 492 
ThreadID 9 : 487 
ThreadID 8 : 486 
ThreadID 10 : 485 
ThreadID 8 : 495 
ThreadID 9 : 494 
ThreadID 11 : 493 
ThreadID 9 : 498 
ThreadID 8 : 497 
ThreadID 10 : 496 
ThreadID 8 : 501 
ThreadID 8 : 503 
ThreadID 8 : 504 
ThreadID 8 : 505 
ThreadID 8 : 506 
ThreadID 8 : 507 
ThreadID 8 : 508 
ThreadID 8 : 509 
ThreadID 8 : 510 
ThreadID 8 : 511 
ThreadID 8 : 512 
ThreadID 8 : 513 
ThreadID 8 : 514 
ThreadID 9 : 500 
ThreadID 11 : 499 
ThreadID 9 : 516 
ThreadID 9 : 518 
ThreadID 9 : 519 
ThreadID 9 : 520 
ThreadID 9 : 521 
ThreadID 9 : 522 
ThreadID 9 : 523 
ThreadID 9 : 524 
ThreadID 9 : 525 
ThreadID 9 : 526 
ThreadID 9 : 527 
ThreadID 9 : 528 
ThreadID 9 : 529 
ThreadID 9 : 530 
ThreadID 9 : 531 
ThreadID 9 : 532 
ThreadID 9 : 533 
ThreadID 9 : 534 
ThreadID 8 : 515 
ThreadID 8 : 536 
ThreadID 8 : 537 
ThreadID 8 : 538 
ThreadID 8 : 539 
ThreadID 8 : 540 
ThreadID 8 : 541 
ThreadID 8 : 542 
ThreadID 8 : 543 
ThreadID 8 : 544 
ThreadID 8 : 545 
ThreadID 8 : 546 
ThreadID 10 : 502 
ThreadID 8 : 547 
ThreadID 9 : 535 
ThreadID 11 : 517 
ThreadID 9 : 550 
ThreadID 8 : 549 
ThreadID 10 : 548 
ThreadID 8 : 553 
ThreadID 9 : 552 
ThreadID 11 : 551 
ThreadID 8 : 555 
ThreadID 8 : 558 
ThreadID 8 : 559 
ThreadID 8 : 560 
ThreadID 8 : 561 
ThreadID 8 : 562 
ThreadID 8 : 563 
ThreadID 8 : 564 
ThreadID 8 : 565 
ThreadID 8 : 566 
ThreadID 8 : 567 
ThreadID 8 : 568 
ThreadID 8 : 569 
ThreadID 8 : 570 
ThreadID 8 : 571 
ThreadID 8 : 572 
ThreadID 8 : 573 
ThreadID 9 : 556 
ThreadID 9 : 575 
ThreadID 9 : 576 
ThreadID 9 : 577 
ThreadID 9 : 578 
ThreadID 9 : 579 
ThreadID 9 : 580 
ThreadID 9 : 581 
ThreadID 9 : 582 
ThreadID 9 : 583 
ThreadID 9 : 584 
ThreadID 9 : 585 
ThreadID 9 : 586 
ThreadID 9 : 587 
ThreadID 9 : 588 
ThreadID 9 : 589 
ThreadID 9 : 590 
ThreadID 9 : 591 
ThreadID 9 : 592 
ThreadID 9 : 593 
ThreadID 9 : 594 
ThreadID 9 : 595 
ThreadID 9 : 596 
ThreadID 9 : 597 
ThreadID 9 : 598 
ThreadID 9 : 599 
ThreadID 9 : 600 
ThreadID 9 : 601 
ThreadID 9 : 602 
ThreadID 9 : 603 
ThreadID 9 : 604 
ThreadID 9 : 605 
ThreadID 9 : 606 
ThreadID 9 : 607 
ThreadID 9 : 608 
ThreadID 9 : 609 
ThreadID 9 : 610 
ThreadID 9 : 611 
ThreadID 9 : 612 
ThreadID 9 : 613 
ThreadID 9 : 614 
ThreadID 9 : 615 
ThreadID 9 : 616 
ThreadID 9 : 617 
ThreadID 9 : 618 
ThreadID 9 : 619 
ThreadID 9 : 620 
ThreadID 9 : 621 
ThreadID 9 : 622 
ThreadID 9 : 623 
ThreadID 9 : 624 
ThreadID 9 : 625 
ThreadID 9 : 626 
ThreadID 9 : 627 
ThreadID 9 : 628 
ThreadID 9 : 629 
ThreadID 9 : 630 
ThreadID 9 : 631 
ThreadID 9 : 632 
ThreadID 9 : 633 
ThreadID 9 : 634 
ThreadID 9 : 635 
ThreadID 9 : 636 
ThreadID 9 : 637 
ThreadID 9 : 638 
ThreadID 9 : 639 
ThreadID 9 : 640 
ThreadID 9 : 641 
ThreadID 9 : 642 
ThreadID 9 : 643 
ThreadID 9 : 644 
ThreadID 9 : 645 
ThreadID 9 : 646 
ThreadID 9 : 647 
ThreadID 9 : 648 
ThreadID 9 : 649 
ThreadID 9 : 650 
ThreadID 9 : 651 
ThreadID 9 : 652 
ThreadID 9 : 653 
ThreadID 9 : 654 
ThreadID 9 : 655 
ThreadID 9 : 656 
ThreadID 9 : 657 
ThreadID 9 : 658 
ThreadID 9 : 659 
ThreadID 9 : 660 
ThreadID 9 : 661 
ThreadID 9 : 662 
ThreadID 9 : 663 
ThreadID 9 : 664 
ThreadID 9 : 665 
ThreadID 9 : 666 
ThreadID 9 : 667 
ThreadID 9 : 668 
ThreadID 9 : 669 
ThreadID 9 : 670 
ThreadID 9 : 671 
ThreadID 9 : 672 
ThreadID 9 : 673 
ThreadID 9 : 674 
ThreadID 9 : 675 
ThreadID 9 : 676 
ThreadID 9 : 677 
ThreadID 9 : 678 
ThreadID 9 : 679 
ThreadID 9 : 680 
ThreadID 9 : 681 
ThreadID 9 : 682 
ThreadID 9 : 683 
ThreadID 9 : 684 
ThreadID 9 : 685 
ThreadID 9 : 686 
ThreadID 9 : 687 
ThreadID 9 : 688 
ThreadID 9 : 689 
ThreadID 9 : 690 
ThreadID 9 : 691 
ThreadID 9 : 692 
ThreadID 9 : 693 
ThreadID 9 : 694 
ThreadID 9 : 695 
ThreadID 9 : 696 
ThreadID 9 : 697 
ThreadID 9 : 698 
ThreadID 9 : 699 
ThreadID 9 : 700 
ThreadID 9 : 701 
ThreadID 9 : 702 
ThreadID 9 : 703 
ThreadID 9 : 704 
ThreadID 9 : 705 
ThreadID 9 : 706 
ThreadID 9 : 707 
ThreadID 9 : 708 
ThreadID 9 : 709 
ThreadID 9 : 710 
ThreadID 9 : 711 
ThreadID 9 : 712 
ThreadID 9 : 713 
ThreadID 9 : 714 
ThreadID 9 : 715 
ThreadID 9 : 716 
ThreadID 9 : 717 
ThreadID 9 : 718 
ThreadID 9 : 719 
ThreadID 9 : 720 
ThreadID 9 : 721 
ThreadID 9 : 722 
ThreadID 9 : 723 
ThreadID 9 : 724 
ThreadID 9 : 725 
ThreadID 9 : 726 
ThreadID 9 : 727 
ThreadID 9 : 728 
ThreadID 9 : 729 
ThreadID 9 : 730 
ThreadID 9 : 731 
ThreadID 9 : 732 
ThreadID 9 : 733 
ThreadID 9 : 734 
ThreadID 9 : 735 
ThreadID 9 : 736 
ThreadID 9 : 737 
ThreadID 9 : 738 
ThreadID 9 : 739 
ThreadID 9 : 740 
ThreadID 9 : 741 
ThreadID 9 : 742 
ThreadID 9 : 743 
ThreadID 9 : 744 
ThreadID 9 : 745 
ThreadID 9 : 746 
ThreadID 9 : 747 
ThreadID 9 : 748 
ThreadID 9 : 749 
ThreadID 9 : 750 
ThreadID 9 : 751 
ThreadID 9 : 752 
ThreadID 9 : 753 
ThreadID 9 : 754 
ThreadID 9 : 755 
ThreadID 9 : 756 
ThreadID 9 : 757 
ThreadID 9 : 758 
ThreadID 9 : 759 
ThreadID 9 : 760 
ThreadID 9 : 761 
ThreadID 9 : 762 
ThreadID 9 : 763 
ThreadID 9 : 764 
ThreadID 9 : 765 
ThreadID 9 : 766 
ThreadID 9 : 767 
ThreadID 9 : 768 
ThreadID 9 : 769 
ThreadID 9 : 770 
ThreadID 9 : 771 
ThreadID 9 : 772 
ThreadID 9 : 773 
ThreadID 9 : 774 
ThreadID 9 : 775 
ThreadID 9 : 776 
ThreadID 9 : 777 
ThreadID 9 : 778 
ThreadID 9 : 779 
ThreadID 9 : 780 
ThreadID 9 : 781 
ThreadID 9 : 782 
ThreadID 9 : 783 
ThreadID 9 : 784 
ThreadID 9 : 785 
ThreadID 9 : 786 
ThreadID 9 : 787 
ThreadID 9 : 788 
ThreadID 9 : 789 
ThreadID 9 : 790 
ThreadID 9 : 791 
ThreadID 9 : 792 
ThreadID 9 : 793 
ThreadID 9 : 794 
ThreadID 9 : 795 
ThreadID 9 : 796 
ThreadID 9 : 797 
ThreadID 9 : 798 
ThreadID 9 : 799 
ThreadID 9 : 800 
ThreadID 9 : 801 
ThreadID 9 : 802 
ThreadID 9 : 803 
ThreadID 9 : 804 
ThreadID 9 : 805 
ThreadID 9 : 806 
ThreadID 9 : 807 
ThreadID 9 : 808 
ThreadID 9 : 809 
ThreadID 9 : 810 
ThreadID 9 : 811 
ThreadID 9 : 812 
ThreadID 9 : 813 
ThreadID 9 : 814 
ThreadID 9 : 815 
ThreadID 9 : 816 
ThreadID 9 : 817 
ThreadID 9 : 818 
ThreadID 9 : 819 
ThreadID 9 : 820 
ThreadID 9 : 821 
ThreadID 9 : 822 
ThreadID 9 : 823 
ThreadID 9 : 824 
ThreadID 9 : 825 
ThreadID 9 : 826 
ThreadID 9 : 827 
ThreadID 9 : 828 
ThreadID 9 : 829 
ThreadID 9 : 830 
ThreadID 9 : 831 
ThreadID 9 : 832 
ThreadID 9 : 833 
ThreadID 9 : 834 
ThreadID 9 : 835 
ThreadID 9 : 836 
ThreadID 9 : 837 
ThreadID 9 : 838 
ThreadID 9 : 839 
ThreadID 9 : 840 
ThreadID 9 : 841 
ThreadID 9 : 842 
ThreadID 9 : 843 
ThreadID 9 : 844 
ThreadID 9 : 845 
ThreadID 9 : 846 
ThreadID 9 : 847 
ThreadID 9 : 848 
ThreadID 9 : 849 
ThreadID 9 : 850 
ThreadID 9 : 851 
ThreadID 9 : 852 
ThreadID 9 : 853 
ThreadID 9 : 854 
ThreadID 9 : 855 
ThreadID 9 : 856 
ThreadID 9 : 857 
ThreadID 9 : 858 
ThreadID 9 : 859 
ThreadID 9 : 860 
ThreadID 9 : 861 
ThreadID 9 : 862 
ThreadID 9 : 863 
ThreadID 9 : 864 
ThreadID 9 : 865 
ThreadID 9 : 866 
ThreadID 9 : 867 
ThreadID 9 : 868 
ThreadID 9 : 869 
ThreadID 9 : 870 
ThreadID 9 : 871 
ThreadID 9 : 872 
ThreadID 9 : 873 
ThreadID 9 : 874 
ThreadID 9 : 875 
ThreadID 9 : 876 
ThreadID 9 : 877 
ThreadID 9 : 878 
ThreadID 9 : 879 
ThreadID 9 : 880 
ThreadID 9 : 881 
ThreadID 9 : 882 
ThreadID 9 : 883 
ThreadID 9 : 884 
ThreadID 9 : 885 
ThreadID 9 : 886 
ThreadID 9 : 887 
ThreadID 9 : 888 
ThreadID 9 : 889 
ThreadID 9 : 890 
ThreadID 9 : 891 
ThreadID 9 : 892 
ThreadID 9 : 893 
ThreadID 9 : 894 
ThreadID 9 : 895 
ThreadID 9 : 896 
ThreadID 9 : 897 
ThreadID 9 : 898 
ThreadID 9 : 899 
ThreadID 9 : 900 
ThreadID 9 : 901 
ThreadID 9 : 902 
ThreadID 9 : 903 
ThreadID 9 : 904 
ThreadID 9 : 905 
ThreadID 9 : 906 
ThreadID 10 : 554 
ThreadID 10 : 908 
ThreadID 10 : 909 
ThreadID 10 : 910 
ThreadID 10 : 911 
ThreadID 10 : 912 
ThreadID 10 : 913 
ThreadID 10 : 914 
ThreadID 10 : 915 
ThreadID 10 : 916 
ThreadID 10 : 917 
ThreadID 10 : 918 
ThreadID 10 : 919 
ThreadID 10 : 920 
ThreadID 10 : 921 
ThreadID 10 : 922 
ThreadID 10 : 923 
ThreadID 10 : 924 
ThreadID 9 : 907 
ThreadID 9 : 926 
ThreadID 9 : 927 
ThreadID 9 : 928 
ThreadID 9 : 929 
ThreadID 9 : 930 
ThreadID 9 : 931 
ThreadID 9 : 932 
ThreadID 9 : 933 
ThreadID 9 : 934 
ThreadID 9 : 935 
ThreadID 9 : 936 
ThreadID 9 : 937 
ThreadID 9 : 938 
ThreadID 9 : 939 
ThreadID 9 : 940 
ThreadID 9 : 941 
ThreadID 9 : 942 
ThreadID 9 : 943 
ThreadID 9 : 944 
ThreadID 9 : 945 
ThreadID 9 : 946 
ThreadID 9 : 947 
ThreadID 9 : 948 
ThreadID 9 : 949 
ThreadID 9 : 950 
ThreadID 9 : 951 
ThreadID 9 : 952 
ThreadID 9 : 953 
ThreadID 9 : 954 
ThreadID 9 : 955 
ThreadID 9 : 956 
ThreadID 9 : 957 
ThreadID 9 : 958 
ThreadID 9 : 959 
ThreadID 9 : 960 
ThreadID 9 : 961 
ThreadID 9 : 962 
ThreadID 9 : 963 
ThreadID 9 : 964 
ThreadID 9 : 965 
ThreadID 9 : 966 
ThreadID 9 : 967 
ThreadID 9 : 968 
ThreadID 9 : 969 
ThreadID 9 : 970 
ThreadID 9 : 971 
ThreadID 9 : 972 
ThreadID 9 : 973 
ThreadID 9 : 974 
ThreadID 9 : 975 
ThreadID 9 : 976 
ThreadID 9 : 977 
ThreadID 9 : 978 
ThreadID 9 : 979 
ThreadID 9 : 980 
ThreadID 9 : 981 
ThreadID 9 : 982 
ThreadID 9 : 983 
ThreadID 9 : 984 
ThreadID 9 : 985 
ThreadID 9 : 986 
ThreadID 9 : 987 
ThreadID 9 : 988 
ThreadID 9 : 989 
ThreadID 9 : 990 
ThreadID 9 : 991 
ThreadID 9 : 992 
ThreadID 9 : 993 
ThreadID 9 : 994 
ThreadID 9 : 995 
ThreadID 9 : 996 
ThreadID 9 : 997 
ThreadID 9 : 998 
ThreadID 9 : 999 
ThreadID 8 : 574 
ThreadID 11 : 557 
ThreadID 10 : 925 
+0

увеличивается, но потоки не могут делать это по очереди. В вашем коде один поток получает блокировку и увеличивает ее. Я хотел зол. где нравится, если у вас есть 3 потока. то o/p должен выглядеть следующим образом: ThreadID 0: 1 ThreadID 1: 2 ThreadID 3: 3 ThreadID 4: 4 ThreadID 0: 5 ThreadID 1: 6 ThreadID 2: 7 ThreadID 3: 8 – pooja

+0

Исполнение резьбы определяется JVM или ОС. Итак, какой поток выполнит, вы никогда не знаете. Вот почему o/p в вашей JVM будет отличаться от моей JVM, а также будет отличаться для каждого запуска. – hagrawal