4.如何證明同步方法中使用的是this鎖

證明方式:一個線程使用同步代碼塊(this明鎖),另一個線程使用同步函數(shù)。如果兩個線程搶票不能實現(xiàn)同步,那么會出現(xiàn)數(shù)據(jù)錯誤。

1.創(chuàng)建多線程類:

 package com.thread.Safety;

public class TrainTicket implements Runnable {

    private int ticket = 1000;
    Object object = new Object();
    public boolean flag= true;

    @Override
    public void run() {
        if (flag){
            while (ticket > 0) {
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                 synchronized (this){
                    if (ticket>0){
                        System.out.println(Thread.currentThread().getName() + "--->" + (1000 - ticket + 1));
                        ticket--;
                    }
                }
            }
        }else {
            while (ticket > 0) {
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                show();
            }
        }

    }

    public synchronized void show(){
        if (ticket>0){
            System.out.println(Thread.currentThread().getName() + "--->" + (1000 - ticket + 1));
            ticket--;
        }
    }
}

創(chuàng)建測試類:

package com.thread.Safety;

public class TarinTicketDemo {
    public static void main(String[] args) throws InterruptedException {
        TrainTicket trainTicket = new TrainTicket();
        new Thread(trainTicket,"線程一").start();
        Thread.sleep(100);
        trainTicket.flag=false;
        new Thread(trainTicket,"線程二").start();
    }
}

執(zhí)行結(jié)果:

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

Process finished with exit code 0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容