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

企业网站更新什么内容太原网络公司网站

企业网站更新什么内容,太原网络公司网站,搭建wordpress环境,网站开发用什么系统比较好1. 写在前面 AQS#xff08;AbstractQueuedSynchronizer#xff09;是Java并发包#xff08;java.util.concurrent#xff09;中的一个抽象类#xff0c;用于实现同步器#xff08;如锁、信号量、栅栏等#xff09;。AQS提供了一种基于FIFO队列的机制来管理线程的竞争和…1. 写在前面 AQSAbstractQueuedSynchronizer是Java并发包java.util.concurrent中的一个抽象类用于实现同步器如锁、信号量、栅栏等。AQS提供了一种基于FIFO队列的机制来管理线程的竞争和等待状态。其主要作用是简化同步器的实现通过提供通用的同步状态管理和线程排队机制使得开发者可以专注于特定同步器的逻辑。了解AQS的工作原理和应用场景是高级Java开发者需要掌握的重要技能。以下是一些常见的AQS面试题及其详细解答。 2. AQS的工作原理是什么 AQS的核心工作原理基于一个FIFO等待队列和一个同步状态state。其主要步骤如下 同步状态AQS通过一个 int 类型的变量 state 来表示同步状态。子类通过重写 tryAcquire、tryRelease 等方法来定义获取和释放同步状态的逻辑。等待队列当线程无法获取同步状态时会被加入到AQS的FIFO等待队列中队列中的每个节点Node表示一个等待的线程。独占模式和共享模式AQS支持独占模式如独占锁和共享模式如共享锁、信号量。在独占模式下只有一个线程可以获取同步状态在共享模式下多个线程可以同时获取同步状态。模板方法AQS通过模板方法模式提供了通用的同步机制子类只需实现特定的同步逻辑。 3. AQS中的Node节点是什么其作用是什么 AQS中的Node节点是一个内部类 AbstractQueuedSynchronizer.Node用于表示等待队列中的每个线程。Node节点包含以下重要信息 线程引用表示当前节点所关联的线程。等待状态表示当前节点的等待状态如 SIGNAL等待唤醒、CANCELLED取消等。前驱和后继节点用于在等待队列中形成双向链表。模式表示当前节点是独占模式还是共享模式。 Node节点的作用是管理等待队列中的线程状态和排队顺序确保线程能够按照FIFO顺序被唤醒和执行。 4. AQS中的独占模式和共享模式有什么区别 AQS支持两种模式独占模式和共享模式。 4.1 独占模式 只有一个线程可以获取同步状态典型应用独占锁如 ReentrantLock主要方法tryAcquire、tryRelease 4.2 共享模式 多个线程可以同时获取同步状态典型应用共享锁如 ReadWriteLock 中的读锁、信号量如 Semaphore主要方法tryAcquireShared、tryReleaseShared 5. 如何使用AQS实现一个简单的独占锁 可以通过继承AQS并重写其方法来实现一个简单的独占锁。以下是一个示例 import java.util.concurrent.locks.AbstractQueuedSynchronizer;public class SimpleLock {private static class Sync extends AbstractQueuedSynchronizer {Overrideprotected boolean tryAcquire(int arg) {if (compareAndSetState(0, 1)) {setExclusiveOwnerThread(Thread.currentThread());return true;}return false;}Overrideprotected boolean tryRelease(int arg) {if (getState() 0) throw new IllegalMonitorStateException();setExclusiveOwnerThread(null);setState(0);return true;}protected boolean isHeldExclusively() {return getState() 1;}}private final Sync sync new Sync();public void lock() {sync.acquire(1);}public void unlock() {sync.release(1);}public boolean isLocked() {return sync.isHeldExclusively();} }6. 如何使用AQS实现一个简单的共享锁 可以通过继承AQS并重写其方法来实现一个简单的共享锁。以下是一个示例 import java.util.concurrent.locks.AbstractQueuedSynchronizer;public class SimpleSharedLock {private static class Sync extends AbstractQueuedSynchronizer {Overrideprotected int tryAcquireShared(int arg) {for (;;) {int current getState();int newCount current arg;if (compareAndSetState(current, newCount)) {return newCount;}}}Overrideprotected boolean tryReleaseShared(int arg) {for (;;) {int current getState();int newCount current - arg;if (compareAndSetState(current, newCount)) {return newCount 0;}}}}private final Sync sync new Sync();public void lock() {sync.acquireShared(1);}public void unlock() {sync.releaseShared(1);} }7. AQS的公平锁和非公平锁有什么区别 AQS支持公平锁和非公平锁两种模式 7.1 公平锁 线程按照FIFO顺序获取锁先到先得。公平锁避免了线程饥饿但可能会导致较高的上下文切换开销。典型实现ReentrantLock 的公平模式。 7.2 非公平锁 线程可以插队获取锁不保证FIFO顺序。非公平锁可能会导致线程饥饿但通常性能较高因为减少了上下文切换。典型实现ReentrantLock 的非公平模式默认。 8. AQS的Condition机制是如何实现的 AQS的Condition机制通过内部类 ConditionObject 实现。ConditionObject 提供了 await 和 signal 等方法用于线程的等待和唤醒。其工作原理如下 等待队列每个Condition对象都有一个单独的等待队列线程调用 await 方法时会被加入到该等待队列中并释放当前持有的锁。唤醒机制线程调用 signal 方法时会从等待队列中唤醒一个线程并将其移到同步队列中等待获取锁。 import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.concurrent.locks.Condition;public class SimpleLockWithCondition {private static class Sync extends AbstractQueuedSynchronizer {Overrideprotected boolean tryAcquire(int arg) {if (compareAndSetState(0, 1)) {setExclusiveOwnerThread(Thread.currentThread());return true;}return false;}Overrideprotected boolean tryRelease(int arg) {if (getState() 0) throw new IllegalMonitorStateException();setExclusiveOwnerThread(null);setState(0);return true;}protected boolean isHeldExclusively() {return getState() 1;}Condition newCondition() {return new ConditionObject();}}private final Sync sync new Sync();public void lock() {sync.acquire(1);}public void unlock() {sync.release(1);}public Condition newCondition() {return sync.newCondition();} }
http://www.dnsts.com.cn/news/145102.html

相关文章:

  • 清丰网站建设电话学校网站开发说明书文档
  • 网址导航网站建设移动网站
  • 专门做游戏交易的网站有哪些地推
  • 建设银行园区公积金管理中心网站建设工程其它费计算网站
  • 苏州市吴中区住房和城乡建设局网站有机玻璃东莞网站建设技术支持
  • 陕西省住房和城乡建设厅综合网站论坛网站怎么做跳转
  • 石家庄网站建设远策科技手机网站 布局
  • 网站设计最新风格公司网页设计的公司
  • 怎么样做兼职网站网站建设销售中遇到的问题
  • 做外贸进大公司网站个人网站怎么设计
  • 网站开发淄博手机h5是什么意思
  • 电子商务网站建设与管理课程的感想官网网站设计
  • 织梦cms怎么做双语网站ui设计案例网站
  • 网站搜索怎么做的福鼎市建设局网站
  • 上海建设网站公司哪家好wordpress标签云404错误
  • 官方网站打不开怎么回事网站建设推广注意什么
  • 网站工程师培训商城网站建设目标
  • 简洁大气企业网站源码广告模板制作
  • 中山网站建设sipocms做任务赚q币网站
  • 找人给公司做网站去哪找为什么需要响应式网站
  • 青岛建站开发厦门市住房建设网站
  • 产品营销型网站建设网站建设费用 百度文库
  • 网站建设研究意义宜都网站制作
  • 中国最大网站建设公司友情链接的作用有哪些
  • 律师怎样做网站学软件技术需要什么基础
  • 提升政务网站建设水平wordpress 分类折叠
  • 个人网站备案能几个wap 网站
  • 网站云模板广告设计与制作流程
  • 高端的食品行业网站开发鹤山做网站公司
  • 国家补贴软件网站开发政策app的开发流程是什么