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

郑州网站建设找哪家好福田补贴每人9000元

郑州网站建设找哪家好,福田补贴每人9000元,jsp网站开发系统,仓库管理软件免费synchronized 和 Lock 都是 Java 中用于实现线程同步的机制#xff0c;它们都可以保证线程安全。 # synchronized 介绍与使用 synchronized 可用来修饰普通方法、静态方法和代码块#xff0c;当一个线程访问一个被 synchronized 修饰的方法或者代码块时#xff0c;会自动获…synchronized 和 Lock 都是 Java 中用于实现线程同步的机制它们都可以保证线程安全。 # synchronized 介绍与使用 synchronized 可用来修饰普通方法、静态方法和代码块当一个线程访问一个被 synchronized 修饰的方法或者代码块时会自动获取该对象的锁其他线程将会被阻塞直到该线程执行完毕并释放锁。这样就保证了多个线程对共享资源的操作的互斥性从而避免了数据的不一致性和线程安全问题。 synchronized 基本使用如下 public class SynchronizedDemo {private int count 0;public synchronized void increment() {count;}public synchronized int getCount() {return count;} }此时我们再使用多线程调用上面类的 increment 或 getCount 时就不会出现线程安全问题了如下代码所示 public class SynchronizedDemoTest {public static void main(String[] args) {SynchronizedDemo demo new SynchronizedDemo();Runnable r () - {for (int i 0; i 1000; i) {demo.increment();}};Thread t1 new Thread(r);Thread t2 new Thread(r);t1.start();t2.start();try {t1.join();t2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Count: demo.getCount());} }Lock 介绍与使用 Lock 是一种线程同步的机制它与 synchronized 相似可以用于控制对共享资源的访问。相比于 synchronizedLock 的特点在于更加灵活支持更多的操作。 Lock 接口定义了以下方法 lock()获取锁如果锁已被其他线程占用则阻塞当前线程。tryLock()尝试获取锁如果锁已被其他线程占用则返回 false否则返回 true。tryLock(long timeout, TimeUnit unit)尝试获取锁在指定的时间范围内获取到锁则返回 true否则返回 false。unlock()释放锁。 相比于 synchronizedLock 的优点在于 粒度更细synchronized 关键字只能对整个方法或代码块进行同步而 Lock 可以对单个变量或对象进行同步。支持公平锁synchronized 不支持公平锁而 Lock 可以通过构造函数指定锁是否是公平锁。支持多个条件变量Lock 可以创建多个条件变量即多个等待队列。 Lock 的实现类有很多比较常用的有 ReentrantLock 和 ReentrantReadWriteLock。 需要注意的是使用 Lock 时需要手动获取和释放锁否则会导致死锁等问题。因此一般来说建议使用 try-finally 语句块来确保锁的正确释放。例如 import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class Counter {private int count 0;private Lock lock new ReentrantLock();public void increment() {// 加锁lock.lock();try {count;} finally {// 释放锁lock.unlock();}}public void decrement() {// 加锁lock.lock();try {count--;} finally {// 释放锁lock.unlock();}}public int getCount() {return count;} }总结synchronized VS Lock synchronized 和 Lock 主要的区别有以下几个方面 锁的获取方式synchronized 是隐式获取锁的即在进入 synchronized 代码块或方法时自动获取锁退出时自动释放锁而 Lock 需要程序显式地获取锁和释放锁即需要调用 lock() 方法获取锁调用 unlock() 方法释放锁。锁的性质synchronized 是可重入的互斥锁即同一个线程可以多次获得同一把锁而且锁的释放也只能由获得锁的线程来释放Lock 可以是可重入的互斥锁也可以是非可重入的互斥锁还可以是读写锁。锁的粒度synchronized 是以代码块和方法为单位进行加锁和解锁而 Lock 可以精确地控制锁的范围可以支持多个条件变量。性能在低并发的情况下synchronized 的性能优于 Lock因为 Lock 需要显式地获取和释放锁而 synchronized 是在 JVM 层面实现的在高并发的情况下Lock 的性能可能优于 synchronized因为 Lock 可以更好地支持高并发和读写分离的场景。 总的来说synchronized 的使用更加简单但是在某些场景下会受到性能的限制而 Lock 则更加灵活可以更精确地控制锁的范围和条件变量但是使用起来比较繁琐。需要根据具体的业务场景和性能需求来选择使用哪种锁机制
http://www.hkea.cn/news/14490121/

相关文章:

  • 个人商城网站能备案吗江苏省建设厅网站
  • idea制作网站知名网站建设官网
  • 网站服务器模式wordpress 邮件服务
  • 重庆知名网站网站运营推广公司
  • 西安 内部网站建设南宁公司注册
  • 石家庄站到石家庄北站台州椒江区建设局网站
  • 网站建设制作经验足耒阳市古雍网站建设店
  • 帮人做淘宝网站骗钱宁德市人社局官网
  • 有做软件的网站有哪些2022网页游戏排行榜前十
  • 中国建设教育网站网站备案和域名备案区别
  • 网站备案关站网商之窗挂
  • 网站建设上传视频教程网站建设 常用字体
  • wordpress建站全过程wordpress自带数据库优化
  • 厦门协会网站建设推广平台开户代理
  • 咸阳制作网站电子商务专业就业方向及前景
  • 网站开发与软件销售WordPress个性页面
  • 南京江北新区最新规划seo优化器
  • 如何创建div做网站网站如何添加统计代码
  • 胶州网站制作网站开发项目设计文档
  • 免费做试卷的网站或试卷学的建筑专业后悔一辈子
  • 网站 改版 方案徐州网站备案
  • 广告公司网站建设方案网页制作平台软件
  • app开发与网站开发的区别帮公司制作网页多少钱
  • 怎么用代码做网站海口智能建站模板
  • 365网站建设导入到wordpress
  • 和平东路网站建设wordpress即时聊天插件
  • 网站首页做很多个关键词上饶市网站建设公司
  • 佛山市专注网站建设平台山东青岛网站设计公司
  • 在婚恋网站做翻译好吗网站运营的作用
  • 国外可以用什么网站做问卷wordpress网站建站