4.如何证明同步方法中使用的是this锁

证明方式:一个线程使用同步代码块(this明锁),另一个线程使用同步函数。如果两个线程抢票不能实现同步,那么会出现数据错误。

1.创建多线程类:

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

创建测试类:

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

执行结果:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容