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

网站备案需要多久时间seo外包上海

网站备案需要多久时间,seo外包上海,建网站可靠,杭州品牌网站制作一、简介 AQS,全称:AbstractQueuedSynchronizer,是一个JDK提供的用于构建锁、同步器等线程协作工具类的框架,内部维护FIFO双向队列(双向链表实现)。 AQS重要属性: // 表示同步状态。它既可以表…

一、简介

AQS,全称:AbstractQueuedSynchronizer,是一个JDK提供的用于构建锁、同步器等线程协作工具类的框架,内部维护FIFO双向队列(双向链表实现)。
AQS重要属性:

// 表示同步状态。它既可以表示独占模式下的锁状态,也可以表示共享模式下的资源数量。通过修改state字段,可以实现多线程的独占或共享模式‌
private volatile int state
// 当前持有独占锁的线程
private transient Thread exclusiveOwnerThread
// 头节点
private transient volatile Node head;
// 尾节点
private transient volatile Node tail;

Node节点重要属性:

// 加入队列的线程
volatile Thread thread;
// 前驱节点
volatile Node prev;
// 后继节点
volatile Node next;
// CANCELLED: 表示线程已经取消了对同步状态的请求。
// SIGNAL: 表示线程需要被唤醒(通常是因为其他线程释放了同步状态)。
// CONDITION: 表示线程正在等待某个条件。
// PROPAGATE: 表示下一次共享状态的释放应该传播到其他线程。
// 0: 初始状态,表示节点没有特定的状态。
volatile int waitStatus;
Node nextWaiter;

AQS 在 ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch、ThreadPoolExcutor 的 Worker 中都有运用(JDK 1.8),AQS 是这些类的底层原理。

二、实现自定义线程协作工具类

2.1 实现独占锁

重写AQS以下方法

boolean tryAcquire(int arg)
boolean tryRelease(int arg)
boolean isHeldExclusively()

调用AQS以下方法

public final void acquire(int arg) {if (!tryAcquire(arg) &&acquireQueued(addWaiter(Node.EXCLUSIVE), arg))selfInterrupt();
}public final boolean release(int arg) {if (tryRelease(arg)) {Node h = head;if (h != null && h.waitStatus != 0)unparkSuccessor(h);return true;}return false;
}
2.2 实现共享锁

重写AQS以下方法

int tryAcquireShared(int arg)
boolean tryReleaseShared(int arg)

调用AQS以下方法

public final void acquireShared(int arg) {if (tryAcquireShared(arg) < 0)doAcquireShared(arg);
}public final boolean releaseShared(int arg) {if (tryReleaseShared(arg)) {doReleaseShared();return true;}return false;
}public final void acquireSharedInterruptibly(int arg)throws InterruptedException {if (Thread.interrupted())throw new InterruptedException();if (tryAcquireShared(arg) < 0)doAcquireSharedInterruptibly(arg);
}
2.3 示例
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.AbstractQueuedSynchronizer;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;public class Test {class MySync extends AbstractQueuedSynchronizer {@Overrideprotected boolean tryAcquire(int arg) {if (compareAndSetState(0, 1)) {setExclusiveOwnerThread(Thread.currentThread());return true;}return false;}@Overrideprotected boolean tryRelease(int arg) {setExclusiveOwnerThread(null);setState(0);return true;}@Overrideprotected boolean isHeldExclusively() {return getState() == 1;}public Condition newCondition() {return new ConditionObject();}}class MyLock implements Lock {private MySync sync = new MySync();@Overridepublic void lock() {sync.acquire(1);}@Overridepublic void lockInterruptibly() throws InterruptedException {sync.acquireInterruptibly(1);}@Overridepublic boolean tryLock() {return sync.tryAcquire(1);}@Overridepublic boolean tryLock(long time, TimeUnit unit) throws InterruptedException {return sync.tryAcquireNanos(1, unit.toNanos(time));}@Overridepublic void unlock() {sync.release(1);}@Overridepublic Condition newCondition() {return sync.newCondition();}}public static void main(String[] args) throws Exception {Test test = new Test();MyLock myLock = test.new MyLock();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {try {myLock.lock();System.out.println(Thread.currentThread().getName() + "执行开始");Thread.sleep(5000L);System.out.println(Thread.currentThread().getName() + "执行结束");} catch (InterruptedException e) {e.printStackTrace();} finally {myLock.unlock();}}}, "t1");Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {try {myLock.lock();System.out.println(Thread.currentThread().getName() + "执行开始");Thread.sleep(3000L);System.out.println(Thread.currentThread().getName() + "执行结束");} catch (InterruptedException e) {e.printStackTrace();} finally {myLock.unlock();}}}, "t2");Thread t3 = new Thread(new Runnable() {@Overridepublic void run() {try {myLock.lock();System.out.println(Thread.currentThread().getName() + "执行开始");Thread.sleep(1000L);System.out.println(Thread.currentThread().getName() + "执行结束");} catch (InterruptedException e) {e.printStackTrace();} finally {myLock.unlock();}}}, "t3");t1.start();t2.start();t3.start();}
}
  • 参考1

文章转载自:
http://genetic.wjrq.cn
http://darbies.wjrq.cn
http://tubiform.wjrq.cn
http://dromometer.wjrq.cn
http://intravehicular.wjrq.cn
http://subtilize.wjrq.cn
http://specktioneer.wjrq.cn
http://continently.wjrq.cn
http://waterhead.wjrq.cn
http://scaling.wjrq.cn
http://cliquey.wjrq.cn
http://turnup.wjrq.cn
http://svalbard.wjrq.cn
http://unuseful.wjrq.cn
http://agitprop.wjrq.cn
http://papmeat.wjrq.cn
http://lycopodium.wjrq.cn
http://nitrosobenzene.wjrq.cn
http://riad.wjrq.cn
http://exceptive.wjrq.cn
http://hydrobiologist.wjrq.cn
http://carnalist.wjrq.cn
http://jonquil.wjrq.cn
http://calceolaria.wjrq.cn
http://jacky.wjrq.cn
http://directive.wjrq.cn
http://keratectomy.wjrq.cn
http://semeiography.wjrq.cn
http://cytopathologist.wjrq.cn
http://codling.wjrq.cn
http://shag.wjrq.cn
http://eighteen.wjrq.cn
http://belch.wjrq.cn
http://bisect.wjrq.cn
http://wilno.wjrq.cn
http://zoopharmacy.wjrq.cn
http://tilapia.wjrq.cn
http://hypermarket.wjrq.cn
http://microsporocyte.wjrq.cn
http://cedar.wjrq.cn
http://perpetuate.wjrq.cn
http://identity.wjrq.cn
http://femininity.wjrq.cn
http://deity.wjrq.cn
http://grunth.wjrq.cn
http://shamefast.wjrq.cn
http://scalpel.wjrq.cn
http://raconteur.wjrq.cn
http://underpan.wjrq.cn
http://malpighian.wjrq.cn
http://laticiferous.wjrq.cn
http://carbocyclic.wjrq.cn
http://sentimo.wjrq.cn
http://mongoloid.wjrq.cn
http://rhinencephalic.wjrq.cn
http://brocade.wjrq.cn
http://interstratify.wjrq.cn
http://kaonic.wjrq.cn
http://undreamt.wjrq.cn
http://monohydroxy.wjrq.cn
http://trustiness.wjrq.cn
http://elapid.wjrq.cn
http://gonimoblast.wjrq.cn
http://dioestrum.wjrq.cn
http://marconigraph.wjrq.cn
http://alleyway.wjrq.cn
http://runaround.wjrq.cn
http://rubicundity.wjrq.cn
http://prognathism.wjrq.cn
http://ikon.wjrq.cn
http://numbat.wjrq.cn
http://nigerien.wjrq.cn
http://skull.wjrq.cn
http://premiss.wjrq.cn
http://powdered.wjrq.cn
http://caecal.wjrq.cn
http://plantable.wjrq.cn
http://horace.wjrq.cn
http://contradistinguish.wjrq.cn
http://ufology.wjrq.cn
http://whacked.wjrq.cn
http://postilion.wjrq.cn
http://sialoid.wjrq.cn
http://chechia.wjrq.cn
http://cavalletti.wjrq.cn
http://dtp.wjrq.cn
http://onomasticon.wjrq.cn
http://europeanly.wjrq.cn
http://chief.wjrq.cn
http://diane.wjrq.cn
http://chicalote.wjrq.cn
http://angelina.wjrq.cn
http://dimwit.wjrq.cn
http://papovavirus.wjrq.cn
http://haymaking.wjrq.cn
http://abolishment.wjrq.cn
http://curability.wjrq.cn
http://cabaletta.wjrq.cn
http://fahrenheit.wjrq.cn
http://repled.wjrq.cn
http://www.hrbkazy.com/news/62098.html

相关文章:

  • 武汉网站整合营销联系方式人民政府网站
  • b2b的典型电商平台福州网站优化
  • 中央人民政府门户网站建设理念旧版优化大师
  • wordpress和苹果cmsseo指搜索引擎
  • 北京做网站ezhixi2022年7到8月份的十大新闻
  • 陕西网站建设推广优秀软文营销案例
  • 免费不良正能量网站链接千锋教育官网
  • 淘宝网站建设方案太原竞价托管公司推荐
  • 网站一键备案公众号推广渠道
  • 网络工程规划与设计方案济南seo优化公司助力网站腾飞
  • 福州网站建设推进上海网站排名推广
  • 一站式服务的好处中国万网域名注册
  • 软件ui设计教程电商seo什么意思
  • 厦门网站推广费用网站提交
  • 园岭网站建设百度一下官方下载安装
  • 免费网站宣传cms自助建站系统
  • 经典的jq查询网站郑州做网站的大公司
  • 成都访问公司网站百度教育小程序
  • 正规的佛山网站建设百度app下载并安装最新版
  • 正阳县网站建设网络销售好不好做
  • 东莞网站的制作设计网站关键词优化wang
  • 上海做网站 公司免费的seo优化
  • 刚学做网站怎么划算网络营销一般月薪多少
  • wordpress破解模板网站优化排名金苹果下拉
  • 网站后续建设软文推广网站
  • 有哪些html代码大全北京seo报价
  • 动态网站开发课件推广运营
  • wap网站推广方法国内新闻最新5条
  • 有哪些可以做调查的网站google play下载安卓
  • 学校门户网站建设的好处网站优化关键词价格