JAVA,使用同步代码块,synchronized解决线程安全问题
2021/7/9 22:17:10
本文主要是介绍JAVA,使用同步代码块,synchronized解决线程安全问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
代码如下:
实现类:
package com.java.day18; // 线程安全 public class ThreadSafe implements Runnable{ // 票的数量 private int ticket = 100; // 创建锁对象 Object obj = new Object(); // 设置线程任务,卖票 @Override public void run() { while (true){ // 锁对象的作用,把代码锁住,只让一个线程在同步代码块中执行 synchronized (obj){ if (ticket > 0) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"-->正在卖第"+ticket+"张票"); ticket--; } } } } }
测试类:
package com.java.day18; // 模拟卖票 public class TestThreadSafe { public static void main(String[] args) { ThreadSafe tf = new ThreadSafe(); Thread td1 = new Thread(tf); Thread td2 = new Thread(tf); Thread td3 = new Thread(tf); td1.start(); td2.start(); td3.start(); } }
运行结果:
同步技术原理:
这篇关于JAVA,使用同步代码块,synchronized解决线程安全问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器