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

作业3 主题资源网站建设wordpress清晰笑话

作业3 主题资源网站建设,wordpress清晰笑话,做兼职比较好的网站,哈尔滨网络公司案例lock加锁解锁尝试获取锁方法lock底层基于什么实现lock和lock的底层实现分别面向什么用户lock和synchronized异同如何选择合适的锁ReentrantLock如何实现冲入内部类三个公平和非公平获取锁怎么实现的RL默认公平还是非公平#xff0c;构造参数ReentrantRedaWriteLock的特性什么是…lock加锁解锁尝试获取锁方法lock底层基于什么实现lock和lock的底层实现分别面向什么用户lock和synchronized异同如何选择合适的锁ReentrantLock如何实现冲入内部类三个公平和非公平获取锁怎么实现的RL默认公平还是非公平构造参数ReentrantRedaWriteLock的特性什么是AQS内部属性AQS的设计模式三类方法和对应作用实现自定义锁步骤同步队列的实现入队出对非公平所在队列中的竞争读写锁获取两个锁的方法读写锁的状态设计怎么做到的用一个int类型变量维护两个锁写锁和读锁获取和释放的场景支持所降级为什么阻塞更耗时自旋锁的默认重试次数自适应自旋锁引入版本怎么做的乐观所悲观所锁升级公平所和非公平所优缺点非可重入锁在重复调用同步资源为什么会死锁共享锁和排它锁jwt的缺点CPU同步各个核心的手段伪共享 lockunlocktryLockAQS队列同步器lock面向锁的使用者AQS面向锁的实现者如果我们想自定义一个所可以实现AQS相同点都能进行并发控制区别sycn使用起来不灵活只能对三种情况加锁lock更灵活可以自定义封锁对象。sync不用手动释放锁lock需要释放锁。sync是排他锁lock可以是排他锁也可以是共享锁如果需要用到lock的尝试锁的方法或者获取锁时可以被中断这些方法可以使用lock剩下的就用sync。sync在1.6之前性能确实不好1.6引入了锁的升级之后性能变好了而且lock需要手动释放通过计数器。当前线程获取锁之后会将锁的计数值count1释放锁会执行-1重入只需要将count即可当count为0才算彻底释放锁SyncFairSyncUonfairSync后两者继承自前者ReentrantLock实现公平非公平就是依靠后两者实现的通过同步队列实现对于一个要获取锁的线程公平锁会将其直接加在同步队列尾部非公平锁会首先尝试与队列头部有、竞争锁竞争成功就成功插队了否则也加入到同步队列中默认非公平锁因为实际场景需要用到公平锁的场景不多并且性能上非公平锁性能好吞吐量高传入参数true就是公平提供了共享锁内部有两种类型的锁共享锁和排他锁同时还是可重入锁。当当前线程获取到了写锁时当前线程还可以获取读锁但是其他线程不能获取任何锁不同线程间可以获取读锁队列同步器int类型的同步状态以及一个FIFO的同步队列status表示当前线程获取锁的次数模板模式第一类访问和修改同步状态第二类表示可重写的方法第三类表示模板方法定义了一些同步的基本操作1实现Lock接口2定义内部类sync继承AQS3实现Lock定义的方法实际上把锁的操作代理到了内部的AQS上同步队列实际上是由Node节点构成的链表每次都是对队列的首节点进行唤醒当首节点释放同步状态时将唤醒下一个节点同时自己出队。当有新的线程来的时候直接加入到尾节点非公平锁首先尝试和下一个要获得同步状态的节点竞争如果竞争成功就直接获得同步资源就不用入同步队列否则加入到同步队列尾部readLock(),writeLock()int32位高16位保存读锁的重入次数低16位保存写锁的重入次数写锁当前线程如果已经获取了写锁那么次数1否则尝试获取写锁如果此时其他线程占据写锁或者读锁那么进入阻塞等待读锁如果有其他线程占据写锁那么阻塞等待否则读锁当当前线程占据写锁时如果写操作执行完成想要读取数据则尝试获取读锁然后释放写锁因为大多数场景下并发执行的代码会很少占据的时间也就很少实际上我们稍等下就可以获取锁了但是如果阻塞的话会涉及到OS切换CPU状态这种状态转换是非常耗时的10次1.6版本让本次自选时间根据上一次在用一个锁上的自选时间来确定如果某个锁很少被占用很长时间或者过去的自旋尝试中很快就变为可用就让当前线程尝试自选更长的时间。乐观锁认为我想要操作的同步资源没人和我竞争所以我不会上锁典型的例子就是CAS他不上锁仅仅是在更新的时候比较一下这个值在我执行期间有没有变化变了就重新执行一遍否则更新。悲观锁认为一定有人和我竞争同步资源所以我直接上锁占着资源。典型的就是synchronized对象由三部分组成对象头实际数据填充字段。在对象头中保存了一些关键的信息比如hashcode锁信息等待。当有线程想要获取我这个锁资源时首先判断锁的对象头中的标志位最后三位是001代表未上锁此时当前线程获取锁资源同时对象头的信息转为偏向锁代表他偏向当前线程同时将线程的id记录在对象头。后续如果还是当前线程获取锁就直接让他访问即可不用加锁操作。当有其他线程竞争时由偏向锁升级为轻量级锁两个线程都通过CAS自旋来竞争所。当有多个线程竞争时有轻量级锁升级成重量级锁避免过多无用的自旋操作浪费cpu资源公平锁的获得顺序严格按照先到先得的思想不存在线程饥饿的现象但他降低了吞吐率线程切换情况较多。非公平锁虽然存在线程饥饿的现象但是他有效的利用cpu资源不涉及向公平锁一样那么多的线程切换吞吐率高当前线程占据锁但是他重复调用同步资源需要获取锁而当前的锁不能冲入且被他自己占据所以就导致他自己占着锁还等着获取锁造成死锁共享锁是允许多个线程同时获得的他们之间是不互斥的ReentrantReadWriteLock中的读锁就是一个典型的共享锁。排他锁不允许其他线程获得只能让当前线程独占比如写锁当当前线程持有写锁的时候其他线程既不能获得写锁也不能获取读锁服务器不保存session状态一旦token颁发了在到期之前都始终有效。安全性依赖于加密算法。一旦泄露其他人也能获取该token的权限。要保证写传播以及事务串行化通过MESI协议写直达把数据同时写入缓存和内存写回当缓存被替换的时候刷新到内存AB两个核心读取了同一个cache line对于一个数组的前两个数A要修改第一个B要修改第二个当A修改完第一个后即使和B无关B也要标记cache line失效然后重新读取。
http://www.w-s-a.com/news/631408/

相关文章:

  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo
  • 个人公益网站怎么制作wordpress flat theme
  • 做营销型网站的公司篇高端网站愿建设
  • 五莲网站建设维护推广凡科做网站的方法