核心Java,多线程环境中的共享计数器

时间:2015-07-02 15:41:06

标签: java multithreading synchronization locks atomicinteger

我遇到了java计数器问题:两个线程共享一个公共计数器并轮流递增。现在有人可以使用同步显示它的代码示例,Locks和AtomicIntegers意味着使用不同的方法。我没有得到任何良好的工作代码比较这个问题。感谢。

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();
    }
}

2 个答案:

答案 0 :(得分:0)

考虑使用AtomicInteger在多线程环境中以原子方式更新值。

示例用法,

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

如果使用LongAdder

更多考虑线程数

答案 1 :(得分:0)

概念:为了保证变量不会同时由2个线程更新,它应该具有同步和原子访问权限,并且其他线程也应该可以看到更改,因此可变应标记为volatile,除了少数其他事项。

Java提供java.util.concurrent.atomic,可以在需要单个变量时帮助您。以下是包文档中的小描述:

  

支持无锁线程安全的类的小工具包   对单个变量进行编程。本质上,这个类   package扩展了volatile值,字段和数组的概念   那些也提供原子条件更新的元素   操作

根据您的要求,我认为java.util.concurrent.atomic.AtomicInteger应该可以解决您的要求。以下是我为您创建的示例以及o / p 请注意

  1. o / p可能会在您的结尾有所不同,但要注意的关键点是您不会在结果中看到重复的值。
  2. 我正在运行4个并行线程,每个线程都试图访问并递增相同的计数器,没有任何同步,并且预期结果。这是因为我们使用Java的原子java.util.concurrent.atomic.AtomicInteger
  3. 解决您的问题:

      

    现在有人可以使用同步显示它的代码示例,   Locks和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