ICode9

精准搜索请尝试: 精确搜索
  • 【Java】学习路径49-练习:使用两个不同的线程类实现买票系统2022-05-11 23:31:26

    练习:使用两个不同的线程类实现买票系统 请创建两个不同的线程类、一个测试类以及一个票的管理类。 其中票的管理类用于储存票的数量。两个线程类看作不同的买票方式。 步骤: 1、创建所需的类 App售票线程类 public class Runnable_AppTicketSeller implements Runnable{ @Ove

  • Java ReentrantReadWriteLock 同一个线程先 readlock, 再 witelock 死锁 - dead lock2022-05-11 22:31:48

      Refr to https://josephmate.github.io/2020-02-24-deadlock-who-owns-the-lock/   What I Learned Locking a readlock, then locking the write lock on the same lock creates a deadlock. Deadlocks created using locks instead of monitors does not appear in thre

  • Ubuntu Linux处理Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by2022-05-11 22:00:25

    问题 在Ubuntu中,执行apt install后,出现以下问题: Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3365 (unattended-upgr) 看着描述就是有3365的进程进行占用了source文件。 解决办法: 删除锁定的文件 rm /var/lib/dpkg/lock-fr

  • mysql 数据库事务2022-05-11 17:33:54

    事务:transaction 一系列sql语句的逻辑单元 类似于java 中的线程 事务特性:ACID A:atomicity 原子性:操作的一致性 C:consistant 一致性: 数据的一致性 I:isolation 隔离性:和别的事务隔离 D:durable 持久性     多事务并发问题: 脏写:最后一个事务的更新覆盖了前面事务的更新; 脏读:读

  • c++多线程2022-05-10 21:03:40

    参考链接:https://www.cnblogs.com/zizbee/p/13520823.html c++创建线程的方式 需要包含头文件#include <thread> // 准备用于创建线程的函数 void proc(int a) { std::cout << "我是子线程" << std::this_thread::get_id() << ",传入参数为" << a << std::

  • Java多线程学习之ReentrantLock2022-05-10 14:34:07

    一、什么是ReentrantLock ReentrantLock中文译为‘可重入锁’,是‘java.util.concurrent.locks’包下的一个类,实现了‘Lock’接口,在多线程中用来保证线程安全。 使用demo: public static void main(String[] args) { ReentrantLock lock = new ReentrantLock();

  • Java并发容器之DelayQueue源码分析2022-05-08 19:03:11

    一、简介 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 二、继承体系 从继承体系可以看到,DelayQueue实现了BlockingQueue,所以它是一个阻塞队列。 另外,DelayQueue还组合了一个叫做Delayed的接口,DelayQueue中存储的所有元素必须实现Delayed接口。 那么,Delayed是什

  • 面试官:Java对synchronized锁的实现与优化2022-05-07 12:32:46

    尊重原创版权: https://www.gewuweb.com/hot/18291.html 面试官:Java对synchronized锁的实现与优化 早期的synchronized锁 在Java 1.5之前,多线程并发中,synchronized一直都是一个元老级关键字,而且给人的一贯印象就是一个比较重的锁。为此,在Java 1.6之后,这个关键字被做了很多的优化,从

  • C++多线程锁的基本用法2022-05-06 19:03:52

    线程同步的基本概念 线程同步不是一起、相同,而是协调、协同的意思。 1. 按预定的先后次序进行运行,线程A生成数据后交给线程B处理; 2. 公共资源同一时刻只能被一个线程使用;共享数据在同一时刻只能被一个线程修改,以保证数据的完整性。 包括的内容有“互斥锁、条件变量、信号量、自旋

  • C++11 关键字thread_local2022-05-05 17:00:57

    C++11新增的关键字thread_local,表示对象的生命周期属于线程存储期。 如果类的成员函数内定义了 thread_local 变量,则对于同一个线程内的该类的多个对象都会共享一个变量实例,并且只会在第一次执行这个成员函数时初始化这个变量实例。 thread_local 一般用于需要保证线程安全的函

  • 5.12022-05-05 11:01:30

    1、RestTemplate:远程调用http接口 2、同步锁Synchronized:方法锁【抢票】(方法锁也是对象锁,方法一旦执行,就会独占该锁【写锁】,否则所属线程阻塞,可能会多个线程调用同一对象【结果非最新】)、对象锁【银行取钱】(在执行方法时,会确保对象有且只有一个线程调用)、类锁【手机打电话发短信】

  • Lock wait timeout exceeded; try restarting transaction2022-05-05 09:34:05

    一.问题描述 在做查询语句时,MySQL 抛出了这样的异常:锁等待超时 Lock wait timeout exceeded; try restarting transaction,是当前事务在等待其它事务释放锁资源造成的! 二.解决方案 1、数据库中执行如下sql,查看当前数据库的线程情况: show full PROCESSLIST 2、INNODB_TRX 表的

  • 21.显式锁(Lock)的使用2022-05-03 22:04:19

        显式锁(Lock)的使用  引言 在已经有了同步关键字synchronize的的情况下,Java依然在5.0版本中新增了一个同步锁对象lock.又称显示锁,之锁以新增它,是因为synchronize有一些不足,究竟synchronize有哪些不足?在后续课程synchronize与lock的区别,一节中详细介绍,本节主要是来介绍显示

  • 第4章 线程间定制化通信2022-05-03 10:32:50

    线程间定制化通信   方案:给每个线程定义一个标志位。 package JUC.lock; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; //第一步 创建资源类,定义属性和操作方法 class ShareRes

  • 第3章 线程间通信2022-05-03 00:34:17

    线程间通信    对于两个线程a,b; 首先线程a: (1) 判断:变量值如果为0 (2) 干活:变量值+1 (3) 通知:a线程通知b线程对变量-1 其次线程b: (1) 判断:变量值如果为1 (2) 干活:变量值-1 (3) 通知:b线程通知a线程对变量+1 依次类推。。。   代码实现:方式一:synchronized关键字 package JUC.syn

  • 基于redisson实现分布式锁2022-05-02 14:01:27

      在日常业务开发中,为了解决并发问题,比如,同一个时刻,多笔相同订单号的订单同时请求,我们只会受理一笔,其他的请求拒绝。我们通常都是用分布锁来解决,当然,也可以使用数据库的唯一索引来解决,数据新增的时候会报插入异常,这样如果系统并发很大,会给数据库造成很大的压力,通常都不会这么操

  • 生产者消费者模型2022-04-30 12:33:53

    生产者消费者模式 生产消费对象 package com.sukai.concurrency.test; import java.util.Queue; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class factory<E> { private Queue<E> queue; private int m

  • lock-下2022-04-29 08:31:50

    自旋锁 CAS算法是乐观锁的一种实现,CAS算法中涉及到自旋锁,这里简述一下 CAS算法说明 ​ CAS的单词Compare And Swap(比较并交换),一种知名的无锁算法。无锁编程,即不使用锁实现多线程间的变量同步,也是在线程没有被阻塞时实现变量同步,也叫非阻塞同步(Non-blocking synchronization) CAS

  • 面试突击43:lock、tryLock、lockInterruptibly有什么区别?2022-04-27 12:32:28

    在 Lock 接口中,获取锁的方法有 4 个:lock()、tryLock()、tryLock(long,TimeUnit)、lockInterruptibly(),为什么需要这么多方法?这些方法都有什么区别?接下来我们一起来看。 lock 方法 lock 方法是 Lock 接口中最基础的获取锁的方法,当有可用锁时会直接得到锁并立即返回,当没有可用锁时

  • MySQL死锁的详细分析方法2022-04-26 10:04:13

    用数据库的时候,偶尔会出现死锁,针对我们的业务系统,出现死锁的直接结果就是系统卡顿、客户找事儿,所以我们也在想尽全力的消除掉数据库的死锁。出现死锁的时候,如果只是想解锁,用show full processlist看下kill掉就好了,如果想查找到详细的问题,一个办法是用show engine innodb status来

  • 状态 :睡眠中,进程ID:13431,yum提示Another app is currently holding the yum lock; waiting for it to exit...2022-04-25 17:00:06

    问题描述: 今天想在虚拟机上重新安装docker然后使用到yum命令报错:      解决办法: [root@localhost ~]# rm -f /var/run/yum.pid 然后重新运行刚才的yum命令即可 原因: 可能是系统自动升级正在运行,yum在锁定状态中,要等待那个进程结束退出:看报错的那一段话: Another app is cur

  • 分布式锁的实现方案2022-04-24 23:01:31

      什么是分布式锁 当多个进程在同一个系统中,用分布式锁控制多个进程对资源的访问 分布式锁应用场景 传统的单体应用单机部署情况下,可以使用java并发处理相关的API进行互斥控制。 分布式系统后由于多线程,多进程分布在不同机器上,使单机部署情况下的并发控制锁策略失效,为了解决跨JV

  • CopyOnWriteArrayList原理2022-04-24 13:05:04

    CopyOnWriteArrayList原理   1、什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这

  • 玩转Mysql系列 - 第26篇:聊聊mysql如何实现分布式锁?2022-04-23 23:31:57

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 欢迎大家加我微信itsoku一起交流java、算法、数据库相关技术。 这是Mysql系列第26篇。 本篇我们使用mysql实现一个分布式锁。 分布式锁的功能 分布式锁使用者位于不同的机器中,锁获取成功之后,

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有