当前位置: 首页 > news >正文

公司做网站自己注册域名用wordpress建立电商网站

公司做网站自己注册域名,用wordpress建立电商网站,重庆市住房和城乡建设厅网站,网站与app的区别Java并发编程之ReentrantLock重入锁原理解析 在多线程编程中#xff0c;同步是一种重要的技术#xff0c;用于控制对共享资源的并发访问。ReentrantLock是Java并发编程库中的一个重要工具#xff0c;用于实现互斥访问共享资源的目的。ReentrantLock可以理解为一个可重入的互…Java并发编程之ReentrantLock重入锁原理解析 在多线程编程中同步是一种重要的技术用于控制对共享资源的并发访问。ReentrantLock是Java并发编程库中的一个重要工具用于实现互斥访问共享资源的目的。ReentrantLock可以理解为一个可重入的互斥锁它允许一个线程多次获取同一把锁避免了在多线程环境中对共享资源的并发访问。 一、ReentrantLock实现 1. 基本原理 ReentrantLock通过内部计数器来记录锁的占用情况。当一个线程尝试获取锁时会先检查计数器如果计数器为0说明锁未被占用该线程可以获取锁并执行临界区的代码。如果计数器不为0说明锁已被其他线程占用该线程将会被阻塞并将自己加入到等待队列中。当锁的占用者释放锁时会检查等待队列唤醒一个等待的线程。 2. 线程阻塞与唤醒机制 当线程请求锁时如果锁被占用线程会进入阻塞状态并将自己加入到等待队列中。当锁的占用者释放锁时会唤醒一个等待的线程。这个过程是通过JVM的Unsafe类来实现的通过调用park()方法来实现线程的阻塞和唤醒。当调用park()方法时线程会释放CPU资源并进入阻塞状态等待其他线程调用unpark()方法来唤醒它。当调用unpark()方法时等待队列中的线程会被唤醒并尝试获取锁。 3. 公平锁与非公平锁 ReentrantLock有两种类型公平锁和非公平锁。公平锁按照线程请求锁的顺序分配锁而非公平锁则没有这个限制。在创建ReentrantLock对象时可以通过参数来指定是使用公平锁还是非公平锁。 4. 锁状态的改变 ReentrantLock的状态分为四种公平锁和非公平锁分别有0和1个等待线程两种状态还有锁定状态和未锁定状态。这些状态的改变需要通过lock()、unlock()、tryLock()等接口进行操作。 二、ReentrantLock工作原理分析 1. 锁的获取与释放 ReentrantLock提供了两种获取锁的方式lock()和tryLock()。lock()方法会一直阻塞直到获取到锁而tryLock()方法则会立即返回是否获取到了锁。当一个线程释放锁时会调用unlock()方法来释放锁释放后的锁会被加入到等待队列中等待其他线程来获取。 2. 公平性策略 ReentrantLock支持公平锁和非公平锁两种策略。公平锁按照线程请求锁的顺序分配锁而非公平锁则没有这个限制。在实现上公平锁会使用一个FIFO队列来保存等待的线程而非公平锁则不会。这种策略可以有效地避免“饥饿”问题。 3. 可重入特性 ReentrantLock支持可重入特性即一个线程可以多次获取同一个锁。在实现上当一个线程再次获取已经获取的锁时会直接返回成功状态而不会进行阻塞。这就意味着同一个线程可以多次获得同一把锁但每次获取都需要释放否则会导致死锁。 三、简单Java代码示例 下面是一个使用ReentrantLock实现同步访问的简单示例 import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockDemo {private final ReentrantLock lock new ReentrantLock();private int count 0;public void increment() {lock.lock(); // 获取锁try {count; // 修改共享资源} finally {lock.unlock(); // 释放锁}}public int getCount() {return count; // 返回共享资源值} }在这个示例中我们使用ReentrantLock来保护对count变量的访问。increment()方法使用lock()和unlock()方法来确保在修改count变量的过程中不会被其他线程干扰。getCount()方法返回当前count的值实现了读写分离。 四、总结 ReentrantLock是Java并发编程库中的一个重要工具它提供了一种可重入的互斥访问共享资源的方式。通过内部计数器来实现锁的占用情况的记录同时支持公平锁和非公平锁两种策略以及可重入特性。使用ReentrantLock可以有效地避免并发访问共享资源时的线程安全问题。
http://www.yutouwan.com/news/397178/

相关文章:

  • 黄冈网站推广软件费用是多少房地产集团网站建设方案
  • 网站建设客户分析推广广告投放
  • 如何看网站的建站时间专业做域名的网站吗
  • 可以找厂家的网站凡科网建立网站后怎么修改
  • 移动建站工具免费素材视频软件app
  • 旅游网站建设属于什么以及学科好玩的网站源码
  • 广东建设公司网站wordpress 文章链接失效
  • 自助网站建设公司智能建站价格
  • 做网站优化的单位网站备案
  • 可视化自助建站网页设计与网站建设作业答案
  • 石嘴山网站seo美图秀秀网页版在线制作
  • 网站空间可以自己做吗建站特别慢wordpress
  • 课程设计超市会员网站建设gensler
  • 医院做网站wordpress改代码
  • 重庆网络推广网站推广做网站用花生壳哪个版本
  • 下载网站cms做华为网站的还有哪些功能
  • 做中介平台网站 需要什么网站建设投标书免费
  • 信息流优化师证书辽宁网站优化
  • 宁波网站建设i sp.net五块钱
  • 思明建设局网站网站建设文化机构
  • WordPress多站点默认设置网页分析报告案例
  • 玉林建设公司网站阿里邮箱 wordpress
  • 河南做网站公司哪家专业旅行社网站建设规划方案
  • 电商网站开发主要技术问题推广培训班
  • html5网站设计夸克观看免费视频
  • 自己做网站花费百度上打广告怎么收费
  • 天津建设招聘信息网站永兴城乡住房建设部网站
  • 南宁营销型网站专家怎么做跳转网站
  • 手机软件开发app需要学什么免费关键词优化工具
  • 钓鱼转转网站在线生成网站的管理系统