草庐IT

锁 - 分布式锁工具

锁概述在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。锁相关概念锁开销:完成一个锁可能额外耗费的资源,比如一个周期所需要的时间,内存空间。锁竞争:一个线程或进程,要获取另一个线程或进程所持有的锁,边会发生锁竞争。锁粒度越小,竞争的可能越小。死锁:多个线程争夺资源互相等待资源释放导致阻塞;由于无限期阻塞,程序不能正常终止。分类乐观锁、悲观锁:是否锁定同步资源。乐观锁:认为其他线程对数据访问时不会修改数据,实际未加锁,更新数据时判断是否被其他线程更新了(读时不加锁,写时加锁)。适合多读的场景,因为读操作没有加锁。实现原理:CAS(compa

锁 - 分布式锁工具

锁概述在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。锁相关概念锁开销:完成一个锁可能额外耗费的资源,比如一个周期所需要的时间,内存空间。锁竞争:一个线程或进程,要获取另一个线程或进程所持有的锁,边会发生锁竞争。锁粒度越小,竞争的可能越小。死锁:多个线程争夺资源互相等待资源释放导致阻塞;由于无限期阻塞,程序不能正常终止。分类乐观锁、悲观锁:是否锁定同步资源。乐观锁:认为其他线程对数据访问时不会修改数据,实际未加锁,更新数据时判断是否被其他线程更新了(读时不加锁,写时加锁)。适合多读的场景,因为读操作没有加锁。实现原理:CAS(compa

自学Python第六天:实战练习——机选双色球

Python自学第六天:实战练习——机选双色球我是一个编程小白,目前从事运维工作。对于运维相关的技术,基本上都是了解点皮毛。因为最近接触自动化运维工具,看到很多工具都需要用到Python来写脚本。于是,利用业余时间,开始自学Python。目的并不是要学到很精通,而是希望大致看明白别人写的代码,自己也可以编写一些简单的代码即可。下面是我结合最近几天的学习成果,又通过网络简单查询学习了一下:random.sample的功能和使用方法,编写的一段代码。大致功能就是,可以根据用户的选择,随机生成双色球彩票号码,并计算出购买这些彩票所需要的金额。不多不少,正好200行。一方面,相对于这六天的学习时间来说

自学Python第六天:实战练习——机选双色球

Python自学第六天:实战练习——机选双色球我是一个编程小白,目前从事运维工作。对于运维相关的技术,基本上都是了解点皮毛。因为最近接触自动化运维工具,看到很多工具都需要用到Python来写脚本。于是,利用业余时间,开始自学Python。目的并不是要学到很精通,而是希望大致看明白别人写的代码,自己也可以编写一些简单的代码即可。下面是我结合最近几天的学习成果,又通过网络简单查询学习了一下:random.sample的功能和使用方法,编写的一段代码。大致功能就是,可以根据用户的选择,随机生成双色球彩票号码,并计算出购买这些彩票所需要的金额。不多不少,正好200行。一方面,相对于这六天的学习时间来说

面试官:为什么 wait/notify 必须与 synchronized 一起使用??

来源:blog.csdn.net/randompeople/article/details/114917087为什么javawait/notify必须与synchronized一起使用这个问题就是书本上没怎么讲解,就是告诉我们这样处理,但没有解释为什么这么处理?我也是基于这样的困惑去了解原因。synchronized是什么Java中提供了两种实现同步的基础语义:synchronized方法和synchronized块,看个demo:publicclassSyncTest{\\1、synchronized方法publicsynchronizedvoidsyncMethod(){System.ou

面试官:为什么 wait/notify 必须与 synchronized 一起使用??

来源:blog.csdn.net/randompeople/article/details/114917087为什么javawait/notify必须与synchronized一起使用这个问题就是书本上没怎么讲解,就是告诉我们这样处理,但没有解释为什么这么处理?我也是基于这样的困惑去了解原因。synchronized是什么Java中提供了两种实现同步的基础语义:synchronized方法和synchronized块,看个demo:publicclassSyncTest{\\1、synchronized方法publicsynchronizedvoidsyncMethod(){System.ou

针对单一key加读写锁

一、什么是读写锁读写锁是JDK1.5提供的一个工具锁,适用于读多写少的场景,将读写分离,从而提高并发性。二、读写锁的特点读锁是共享锁,写锁是排他锁,读锁和写锁不能同时存在;读锁不能升级为写锁;写锁可以降级为读锁;三、锁的本质锁的本质就是锁住一块资源而不是一块代码.在常见的一些代码实现都是加一把大锁,将这一块代码资源统一加锁,无法针对资源进行精确进行锁控制.四、代码实现`importlombok.extern.slf4j.Slf4j;importjava.util.concurrent.ConcurrentHashMap;importjava.util.concurrent.locks.Read

针对单一key加读写锁

一、什么是读写锁读写锁是JDK1.5提供的一个工具锁,适用于读多写少的场景,将读写分离,从而提高并发性。二、读写锁的特点读锁是共享锁,写锁是排他锁,读锁和写锁不能同时存在;读锁不能升级为写锁;写锁可以降级为读锁;三、锁的本质锁的本质就是锁住一块资源而不是一块代码.在常见的一些代码实现都是加一把大锁,将这一块代码资源统一加锁,无法针对资源进行精确进行锁控制.四、代码实现`importlombok.extern.slf4j.Slf4j;importjava.util.concurrent.ConcurrentHashMap;importjava.util.concurrent.locks.Read

mysql报错The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot executethisstatem

今天mysql报错TheMySQLserverisrunningwiththeLOCK_WRITE_GROWTHoptionsoitcannotexecutethisstatement小编特此记录一下问题。当mysql出现这个报错时,是因为mysql的存储空间爆满了。 此时我们要进行排查,排查的方向:1.数据2.mysql的备份3.日志小编这里数据正常,备份正常,日志也正常,3个加起来还不到100G(小编的存储300G),然后小编查看了MySQL的系统文件,命令:SELECTfile_name,CONCAT(TOTAL_EXTENTS,'MB')AS'FileSize'FROMINFORMAT

mysql报错The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot executethisstatem

今天mysql报错TheMySQLserverisrunningwiththeLOCK_WRITE_GROWTHoptionsoitcannotexecutethisstatement小编特此记录一下问题。当mysql出现这个报错时,是因为mysql的存储空间爆满了。 此时我们要进行排查,排查的方向:1.数据2.mysql的备份3.日志小编这里数据正常,备份正常,日志也正常,3个加起来还不到100G(小编的存储300G),然后小编查看了MySQL的系统文件,命令:SELECTfile_name,CONCAT(TOTAL_EXTENTS,'MB')AS'FileSize'FROMINFORMAT