简体   繁体   English

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

[英]Core Java , Shared Counter in Multithreading env

I got the java counter problem: two threads share a common counter and increment it in turns.我遇到了 java 计数器问题:两个线程共享一个公共计数器并依次递增。 Now can someone please show code examples of it using synchronization, Locks and AtomicIntegers means using different approach.现在有人可以使用同步来展示它的代码示例,锁和 AtomicIntegers 意味着使用不同的方法。 I am not getting any good working code comparison for this problem.对于这个问题,我没有得到任何好的工作代码比较。 Thanks.谢谢。

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

Consider using AtomicInteger to update values atomically in a multi-threaded environment.考虑使用AtomicInteger在多线程环境中以原子方式更新值。

A sample usage,示例用法,

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

If the number of threads are more consider using LongAdder如果线程数较多考虑使用LongAdder

Concept: In order to guarantee that a variable is not updated by 2 threads at the same time, it should have synchronized and atomic access, and also changes should be visible to other threads, so variable should marked as volatile , apart from few other things.概念:为了保证一个变量不会被2个线程同时更新,它应该有同步和原子访问,而且变化应该对其他线程可见,所以变量应该标记为volatile ,除了一些其他的东西.

Java provides a java.util.concurrent.atomic which helps you when the need is for a single variable. Java 提供了一个java.util.concurrent.atomic ,它可以在需要单个变量时为您提供帮助。 Below is small description from the package documentation:以下是包文档中的小说明:

A small toolkit of classes that support lock-free thread-safe programming on single variables.支持对单个变量进行无锁线程安全编程的小型类工具包。 In essence, the classes in this package extend the notion of volatile values, fields, and array elements to those that also provide an atomic conditional update operation本质上,这个包中的类将 volatile 值、字段和数组元素的概念扩展到那些也提供原子条件更新操作的类

Looking at your requirement, I think java.util.concurrent.atomic.AtomicInteger should solve your requirement.看看您的要求,我认为java.util.concurrent.atomic.AtomicInteger应该可以解决您的要求。 Below is a sample I have created for you and also the o/p.以下是我为您创建的示例以及 o/p。
Please note that请注意

  1. o/p may differ at your end, but key point to note is that you will not see duplicate values in the result. o/p 最终可能会有所不同,但要注意的关键点是您不会在结果中看到重复的值。
  2. I am running 4 parallel threads, and each is trying to access and increment the same counter, without any synchronization, and results are expected.我正在运行 4 个并行线程,每个线程都试图访问和递增同一个计数器,没有任何同步,结果是预期的。 And this happens because we are using Java's atomic java.util.concurrent.atomic.AtomicInteger发生这种情况是因为我们正在使用 Java 的原子java.util.concurrent.atomic.AtomicInteger

To address your question:要解决您的问题:

Now can someone please show code examples of it using synchronization, Locks and AtomicIntegers means using different approach.现在有人可以使用同步来展示它的代码示例,锁和 AtomicIntegers 意味着使用不同的方法。 I am not getting any good working code comparison for this problem.对于这个问题,我没有得到任何好的工作代码比较。

Since your purpose if use of counter, you really need to worry about synchronized code, locks etc., you can straight way use java.util.concurrent.atomic.AtomicInteger .由于您的目的是使用计数器,您确实需要担心同步代码、锁等,您可以直接使用java.util.concurrent.atomic.AtomicInteger
If for learning purpose you want to know about synchronized code, locks etc. then it is really a big topic :) You can read Java's concurrency tutorial .如果出于学习目的,您想了解同步代码、锁等,那么这确实是一个很大的话题:) 您可以阅读Java 的并发教程

PS: I checked the code you had provided and it was working for me, anyways you can test the code I have provided, and you should get expected results. PS:我检查了你提供的代码,它对我有用,反正你可以测试我提供的代码,你应该得到预期的结果。

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

}

Output:输出:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM