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

工信部网站备案网址自己建立网站服务器

工信部网站备案网址,自己建立网站服务器,wordpress媒体ip地址,wordpress 做一个视频站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.w-s-a.com/news/248064/

相关文章:

  • 大连设计网站公司3小说网站开发
  • 建设环保网站查询系统网站建设168
  • 保险网站程序源码wordpress过滤敏感
  • 简述营销型网站推广的方法网站建设报价方案模板
  • 四川林峰脉建设工程有限公司网站为什么建设营销型网站
  • 网站模板搭建已经建网站做外贸
  • 网站建设选哪个wordpress实现微信登录界面
  • 网页设计网站哪个公司好学网站开发要多少钱
  • 商务网站建设ppt做视频分享网站
  • WordPress网站根目录有哪些wordpress用户等级
  • 私人装修接单网站重庆制作企业网站
  • 易企秀网站怎么做轮播图什么是网站版面布局
  • 网站开发先写什么后写什么做网站公司专业
  • 中山网站建设文化外贸公司的网站建设模板
  • 美食网站开发开题报告wordpress第三方支付接口
  • 有哪些网站可以卖自己做的图片简洁大方的网站首页
  • 四川建设网电子招投标网站网站酷站
  • 凯里网站建设如何收费网站建设php怎么安装
  • 网站建设专业网站设计公司物格网一站式建站价格
  • seo网站培训优化怎么做如何给网站做下载附件
  • php网站建设文献综述怎么样提高网站排名
  • 专用车网站建设wordpress半透明
  • 石狮网站建设哪家好wordpress 3.9 漏洞
  • 为何建设单位网站找网络推广策畿
  • 用网站模板做网站动漫制作专业学校前十名
  • 网页 代码怎么做网站网站建设与维护课程设计
  • 网站制作哪家公司好企业名录联系电话
  • 做的网站怎么上传到网上wordpress图片之间空一行
  • 腾讯云建设网站视频vi报价单
  • 个人网站发布怎么做建设银行网站收款怎么打明细