线程的同步

  • 线程同步机制同步块:Java中提供了同步机制,可以有效的防止资源冲突。同步机制使用 synchronized关键字 使用该关键字的代码块称为同步块。同步块 语法:
synchronized (Object){
}

同步块 实例:

public class Demo6  implements Runnable{
        int unm = 10;// 售票池 总票数

        public static void main(String[] args) {
            Demo6 demo6 = new Demo6();
            Thread thread1 = new Thread(demo6, "a1");// 一号售票机
            Thread thread2 = new Thread(demo6, "a2");// 二号售票机
            Thread thread3 = new Thread(demo6, "a2");// 三号售票机
            Thread thread4 = new Thread(demo6, "a4");// 四号售票机
            thread1.start();// 开启线程
            thread2.start();
            thread3.start();
            thread4.start();

        }

        @Override
        public void run() {
            while (true) {
                synchronized (this){// 同步代码块,加锁对象为自身
                if (unm > 0) {
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("票数:" + unm--);
                }
            }
        }
    }
}

线程的同步
synchronized void name(){
}

Original: https://www.cnblogs.com/TeaTracing/p/16138365.html
Author: TeaTracing
Title: 线程的同步

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622657/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring Boot整合Spring Data连接postgreSQL完成简单的CRUD操作

    导入jpa依赖和postgresql依赖: 编写pojo层数据库实体类Company: 编写接口: 编写测试类: 基本使用教程 Original: https://www.cnbl…

    数据库 2023年6月6日
    096
  • 多线程基础知识!!!

    1.1、继承Thread类(重点) public class MyThread extends Thread{ @Override public void run() { } pu…

    数据库 2023年6月16日
    097
  • 567.字符串中的排列

    滑动窗口 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2…

    数据库 2023年6月16日
    085
  • 运行的第一个Django

    2022-09-24 创建了一个Django项目后,进行测试,输入指令: python manage.py runserver 出现了如下问题: 我还想着,Django模块通过安装…

    数据库 2023年6月14日
    087
  • 微信登录前端开发指南

    使用场景 微信公众号内嵌H5网页调用微信登录 在微信浏览器中的网页唤起微信登录界面 详情可以查阅微信登录官方文档 链接地址 功能思路 后台先在微信给开发者提供的测试账号平台上创建应…

    数据库 2023年6月11日
    098
  • django-ckeditor上传图片到阿里云OSS

    参考信息 资料1: django_ckeditor上传图片到七牛云OSS 使用 1. 安装django-ckeditor 【参考 资料1 】 2. setting.py配置INST…

    数据库 2023年6月9日
    0106
  • Redis集群(一)主从复制

    一、主从复制概述 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由…

    数据库 2023年6月11日
    095
  • [LeetCode]28. 实现 strStr()

    实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始…

    数据库 2023年6月9日
    098
  • kafka学习

    Kafka概述 Kafka是分布式(点对点模式)(发布-订阅模式)消息系统,由Scala 写成, 它主要用于处理流式数据。本质是基于消息队列缓存数据. Kafka对消息保存时根据T…

    数据库 2023年6月16日
    089
  • Executor 创建线程

    Executors创建有四种创建方式: newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIF…

    数据库 2023年6月9日
    0111
  • Django项目中表的查询的操作

    2022-09-29 shell操作: 我在使用中是pycharm与数据库建立连接的一个工具。 使用的环境: 在此处是用在了虚拟环境中。 使用场景: 一般是在创建的表中插入数据后,…

    数据库 2023年6月14日
    087
  • myrocks复制中断问题排查

    mysql可以支持多种不同的存储引擎,innodb由于其高效的读写性能,并且支持事务特性,使得它成为mysql存储引擎的代名词,使用非常广泛。随着SSD逐渐普及,硬件存储成本越来越…

    数据库 2023年6月9日
    0113
  • Nginx基础入门篇(1)—优势及安装

    一、Nginx 的优势 1.1发展趋势: 2016年: 1.2、简介 Nginx (engine x) 是一个高性能的HTTP(解决C10k的问题)和反向代理服务器,也是一个IMA…

    数据库 2023年6月14日
    081
  • ArrayLIst在指定位置插入的内部实现

    今天看到一个问题:ArrayList的add方法有两种使用,那么add到指定位置内部是怎么实现的? 发现自己对这块地方不熟悉,所以立马去看了ArrayList下的源码 // 第一个…

    数据库 2023年6月9日
    093
  • Maven配置私有仓库

    前言 当公司或个人具有自己独有的jar时,不想公开,一般就会放在自己的私有Maven仓库中,在项目中需要引用,此时就需要将公司私有仓库配置到maven当中,一般我们的maven配置…

    数据库 2023年6月16日
    0160
  • 连接数据库空异常

    解决过程(嫌麻烦可以直接看结论): 首先我以为是我的数据库驱动名字什么的没有写对,但是确实是对的,使用的是 com.mysql.cj.jdbc.Driver ,也没有发现多余的空格…

    数据库 2023年6月16日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球