}//解决多线程安全问题第二种方式通过同步函数/*同步函数使用的锁是固定的this,当线程任务需要一个同步时可以使用同步函数 同步代码块使用的锁可以是任意一个对象,当线程任务需要多个同步时,必须通过锁来区分,这时只能使用同步代码块了*/publicsynchronizedvoidsale() {if(tickets > 0) {try{Thread.sleep(10);}ca...
1packagebytezero.threadsynchronization;2345/**6* 使用同步方法解决实现 继承 Thread类 的线程安全问题7*8*9*10*@authorBytezero1·zhenglei! Email:420498246@qq.com11* create 2021-10-17 16:3812*/13classWindowMextendsThread{14privatestaticintticket = 100;1516@Override17publicvoidrun() {18while(true)...
14 * 方式一:同步代码块 15 * synchronized(同步监视器){ 16 * //需要被同步的代码 17 * 18 * } 19 * 说明:1.操作共享数据的代码,即为需要同步的代码 --> 不能 包含 代码多了,也不能包含代码少了 20 * 2. 共享数据:多个线程共同操作的变量 比如:ticket 就是共享数据 21 * 3.同步监视器,俗称:...
1packagebytezero.threadsynchronization;2345/**6* 使用同步代块的方式 解决继承 Thread类的方式的线程安全问题7*8* 创建 三个窗口 买票 总票数为 100张 使用继承Thread类的方式9*10* 说明:在继承Thread类创建多线程的方式中,慎用 this 充当同步监视器,考虑使用11* 当前类充当同步监视器12*13*@authorBytezero1...
来解决线程的安全问题13*14* 方式一:同步代码块15* synchronized(同步监视器){16* //需要被同步的代码17*18* }19* 说明:1.操作共享数据的代码,即为需要同步的代码 --> 不能 包含 代码多了,也不能包含代码少了20* 2. 共享数据:多个线程共同操作的变量 比如:ticket 就是共享数据21* 3.同步监视器,俗称...