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

英语培训网站建设需求分析报告徐州编程培训机构

英语培训网站建设需求分析报告,徐州编程培训机构,赶集网发布信息免费,现在出入邯郸最新规定1.1 可重入锁 synchronized就是一个可重入锁 使用lock时#xff0c;常用的ReentryLock就是可重入锁 当一个线程在获得a对象锁之后#xff0c;可以继续重复获得对象锁 代码形式就是 线程调用同步代码段#xff0c;在没有执行完毕前#xff0c;又调用了该对象的另一个同步…1.1 可重入锁 synchronized就是一个可重入锁 使用lock时常用的ReentryLock就是可重入锁 当一个线程在获得a对象锁之后可以继续重复获得对象锁 代码形式就是 线程调用同步代码段在没有执行完毕前又调用了该对象的另一个同步代码段 public class Test4 {public static void main(String[] args) {new ReentrantLock().unlock();Thread t1 new Thread(()-{t1(); // 0 - 1});t1.start();}public static synchronized void t1(){t2(); // 1 - 2} // 1 - 0public static synchronized void t2(){} //2 - 1 } 当线程1进入同步代码段时会记录线程1的信息表示线程1获得了锁同时锁状态0 - 1 当线程1重复进入需要当前对象锁的同步代码段时会检测之前检录的线程信息 如果之前记录的线程信息和当前进入的线程信息相同说明重入允许同时状态1 - 2 如果之前记录的线程信息和当前进入的线程信息不同说明新线程访问加入同步队列等待。 当前线程离开同步代码段时会释放锁本质就是状态 2 - 1 或 1 - 0 注意 针对于Lock锁加锁的数量和释放锁的数量应该保持相同。 否则会产生死锁。 synchronized 和 lock都可能会产生死锁 synchronized 两个线程同时需要彼此所占有的资源 lock最常见的死锁情况就是获得锁后忘释放了。 1.2 公平锁和非公平锁 synchronized 属于非公平锁 Lock之ReentryLock创建锁对象时可以通过传参指定公平或非公平。默认是非公平锁 new ReentryLock(true);//公平锁 new ReentryLock(false);//非平锁 假设 有n个线程同时访问同步资源只有1个线程可以获得锁其他n-1个线程进入同步队列等待 当然这n-1个线程进入同步队列后会有一个先后顺序 当第一个线程释放锁资源后 同步队列中那n-1个线程会按顺序依次获得锁 (倒序 或 顺序) 当线程1释放锁的同时又来了一个新线程要想要争抢锁 这个新线程直接存于锁的争抢 就称非公平锁 这个新线程直接进入同步队列等待前面的线程释放锁。 就称公平锁 1.3 排它锁 和 共享锁 排它锁又称为 互斥锁也称为 独享锁当一个线程获得该锁 其他线程无法获得锁需要等待 synchronized就是一个排它锁 Lock中提供了不同的实现 共享锁 多个线程可以同时获得这个锁。 在Lock应用当中有一个读写锁就是对排它锁和共享锁的使用 读写就是 共享锁 写锁就是 排它锁 ReentrantReadWriteLock tool new ReentrantReadWriteLock(); Lock lock1 tool.readLock(); Lock lock2 tool.writeLock(); 两个线程可以同时获得读锁 两个线程只能有一个获得写锁另一个等待 一个线程获得读锁 另一个线程尝试获得写锁会失败进入等待状态。 一个线程获得写锁 另一个线程尝试获得读锁会失败进入等待状态 public class Test5 {public static void main(String[] args) throws InterruptedException {ReentrantReadWriteLock tool new ReentrantReadWriteLock();Lock lock1 tool.readLock();Lock lock2 tool.writeLock();Thread t1 new Thread(()-{lock1.lock();for(int i1;i5;i){System.out.println(i);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}lock1.unlock();});Thread t2 new Thread(()-{lock2.lock();for(int i11;i15;i){System.out.println(i);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}lock2.unlock();});t2.start();Thread.sleep(10);t1.start();} } 1.4 悲观锁 和 乐观锁
http://www.dnsts.com.cn/news/165204.html

相关文章:

  • 弥勒建设局网站汉中专业网站建设价格
  • 网站整体运营做不做我女朋友的网站
  • 沧浪企业建设网站价格wordpress页面顶部菜单
  • 推荐做微商海报的网站绿化公司网站建设
  • 自建站wordpress修改用户资料
  • 石景山网站建设推广招聘网页制作课程设计
  • 新加坡网站建设中国核工业二四建设有限公司
  • 手机响应式网站开发电子商务平台有什么
  • 网站源码绑定域名黄页网站 php
  • 网站别人做的上面有方正字体江苏高校品牌专业建设网站
  • 网页设计与网站建设大作业新闻类软文
  • 用织梦做网站都需要用什么wordpress面包屑文字大小如何调整
  • 查公司信息的网站食品网站开发毕业设计
  • 网站开发如何适应各分辨率天元建设集团有限公司新中大i8
  • 网站三d图怎么做seo刷词
  • 泰州网页网站制作网站视频站建设教程和
  • 买公司的网站建设怎么免费建设网站
  • 吉安市建设局图审中心网站西安异构国际设计
  • 有哪个网站是成都中科大旗做的简述网站的建设流程
  • 长沙医疗网站建设提高网站收录
  • 沈阳哪里可以做网站营销网站关键词收费
  • 豪车网站建设背景wordpress 获取页面的名称
  • 荣昌网站建设电影网站做多大会有风险
  • visio网站开发流程图服装类电子商务网站建设报告
  • 360移动建站合肥建设云app
  • 用dw做网站 主题是哪个在线做生存曲线的网站有哪些
  • 企业网站建设运营的灵魂seo短视频网页入口引流
  • 给我免费播放在线网站优化 北京
  • 做照片书的网站企业电子商城网站建设
  • 重庆北京网站建设yy直播助手