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

简述一个网站开发流程wordpress小工具侧边栏

简述一个网站开发流程,wordpress小工具侧边栏,如何在别人的网站模板上加兼容,网站建设完成后如何备案目录 1、乐观锁悲观锁 1.1 乐观锁的定义 1.2 乐观锁的实现#xff08;CAS机制#xff09; 1.3 乐观锁存在的问题#xff1a;ABA问题 1.4 悲观锁 2、公平锁非公平锁 3、读写锁 4、独占锁共享锁 5、可重入锁自旋锁 1、乐观锁悲观锁 1.1 乐观…目录 1、乐观锁悲观锁 1.1 乐观锁的定义 1.2 乐观锁的实现CAS机制 1.3 乐观锁存在的问题ABA问题 1.4 悲观锁 2、公平锁非公平锁 3、读写锁 4、独占锁共享锁 5、可重入锁自旋锁 1、乐观锁悲观锁 1.1 乐观锁的定义 乐观锁认为一般情况下不会出现冲突所以只会在更新数据的时候才对冲突进行数据检测如果没有发生冲突则直接修改如果发生冲突则不做任何修改然后把结果返回给用户让用户自行处理。 1.2 乐观锁的实现CAS机制 CASCOMPARE AND SWAP对比替换 V内存中的值 A预期的旧值 B要替换的新值 CAS实现机制比较V和A是否相等相等则将V更改为B否则提示修改失败。核心先比较再替换 CAS实现借助Unsafe类Unsafe类调用操作系统的Atomic::cmpxchg原子性汇编指令 我们一般不用Unsafe类因为其中的方法可以直接对内存进行操作是不安全的。 我们推荐使用Atomicxxx来实现CAS机制保证线程安全。如下 import java.util.concurrent.atomic.AtomicInteger;/*** CAS 使用*/ public class CASDemo1 {private static int number 0;private static AtomicInteger atomicInteger new AtomicInteger(0);private final static int MAX_COUNT 100000;public static void main(String[] args) throws InterruptedException {// Thread t1 new Thread(() - {for (int i 0; i MAX_COUNT; i) {atomicInteger.getAndIncrement(); // i // number;}});t1.start();// --Thread t2 new Thread(() - {for (int i 0; i MAX_COUNT; i) {atomicInteger.getAndDecrement(); // i-- // number--;}});t2.start();t1.join();t2.join();System.out.println(最终结果 atomicInteger.get());} } 1.3 乐观锁存在的问题ABA问题 ABA问题代码演示 import java.util.concurrent.atomic.AtomicInteger;/*** CAS ABA 演示*/ public class ABADemo1 {private static AtomicInteger money new AtomicInteger(100);public static void main(String[] args) throws InterruptedException {//第一次点击转账(-50)Thread t1 new Thread(()-{int old_money money.get();try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}money.compareAndSet(old_money,old_money50);});t1.start();//第二次点击转账(-50)[不小心点击的因为第一次点击没有反应所以又点了一次]Thread t2 new Thread(()-{int old_money money.get();money.compareAndSet(old_money,old_money50);});t2.start();//给账户50元Thread t3 new Thread(()-{//执行花费1stry {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}int old_money money.get();money.compareAndSet(old_money,old_money50);});t1.join();t2.join();t3.join();System.out.println(最终账户余额money.get());} } ABA解决方案 引入版本号每次操作之后让版本号1执行下一步操作前判断值和版本号如果二者都为true才进行操作。 import java.util.concurrent.atomic.AtomicStampedReference;/*** ABA 问题演示*/ public class ABADemo2 {private static AtomicStampedReferenceInteger money new AtomicStampedReference(100, 0);public static void main(String[] args) throws InterruptedException {// 第 1 次点击转账按钮(-50)Thread t1 new Thread(() - {int old_money money.getReference(); // 先得到余额int version money.getStamp(); // 得到版本号// 执行花费 2stry {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}money.compareAndSet(old_money, old_money - 50, version, version 1);});t1.start();// 第 2 次点击转账按钮(-50)【不小心点击的因为第一次点击之后没反应所以不小心又点了一次】Thread t2 new Thread(() - {int old_money money.getReference(); // 先得到余额int version money.getStamp(); // 得到版本号money.compareAndSet(old_money, old_money - 50,version, version 1);});t2.start();// 给账户 50 元Thread t3 new Thread(() - {// 执行花费 1stry {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}int old_money money.getReference();int version money.getStamp();money.compareAndSet(old_money, old_money 50,version, version 1);});t3.start();t1.join();t2.join();t3.join();System.out.println(最终账号余额 money.getReference());} } 1.4 悲观锁 定义总是假设最坏的情况每次去拿数据的时候就认为别人会修改所以每次进行访问都要进行上锁这样被人拿数据时就会阻塞直到它拿到锁。 应用synchronized、lock 都是悲观锁 2、公平锁非公平锁 非公平锁抢占式执行有一些先来的任务还在排队刚好释放锁的时候新来了一个任务此时并不会通知任务队列来执行任务而是执行新来的任务。 公平锁所有任务来了之后先排队线程空闲之后去任务队列按顺序执行最早任务。排队做核酸 3、读写锁 读写锁 Readers-Writer Lock顾名思义就是把一把锁分为两个部分读锁和写锁读锁允许多个线程同时获得因为读本身就是线程安全的而写锁是互斥锁不允许多个线程同时获得并且读写也是互斥的。ALL IN ALL :读读不互斥、读写互斥、写写互斥。 JAVA标准库提供了ReentrantReadWriteLock类实现了读写锁 读写锁适合于“频繁读不频繁写”的场景 import java.time.LocalDateTime; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantReadWriteLock;/*** 演示读写锁的使用*/ public class ReadWriteLockDemo {public static void main(String[] args) {//创建读写锁final ReentrantReadWriteLock readWriteLock new ReentrantReadWriteLock();//创建读锁final ReentrantReadWriteLock.ReadLock readLock readWriteLock.readLock();//创建写锁final ReentrantReadWriteLock.WriteLock writeLock readWriteLock.writeLock();//创建线程池ThreadPoolExecutor threadPool new ThreadPoolExecutor(5,5,0,TimeUnit.SECONDS,new LinkedBlockingQueue());//线程池执行任务1【读操作】threadPool.submit(()-{//加锁操作readLock.lock();try {System.out.println(执行读锁1 LocalDateTime.now());TimeUnit.SECONDS.sleep(3);} catch (InterruptedException e) {e.printStackTrace();}finally {readLock.unlock();}});//线程池执行任务2【读操作】threadPool.submit(()-{//加锁操作readLock.lock();try {System.out.println(执行读锁2 LocalDateTime.now());TimeUnit.SECONDS.sleep(3);} catch (InterruptedException e) {e.printStackTrace();}finally {readLock.unlock();}});//线程池执行任务3【写操作】threadPool.submit(()-{//加锁操作writeLock.lock();try {System.out.println(执行写锁1 LocalDateTime.now());TimeUnit.SECONDS.sleep(3);} catch (InterruptedException e) {e.printStackTrace();}finally {writeLock.unlock();}});//线程池执行任务4【写操作】threadPool.submit(()-{//加锁操作writeLock.lock();try {System.out.println(执行写锁2 LocalDateTime.now());TimeUnit.SECONDS.sleep(3);} catch (InterruptedException e) {e.printStackTrace();}finally {writeLock.unlock();}});} }由此可看出读操作是同时进行的而写操作则不能同时操作 4、独占锁共享锁 独占锁任何时候只有一个线程能执行资源操作synchronized、lock 共享锁可以同时被多个线程读取但只能被一个线程修改。比如java中的读写锁。读锁可以同时被多个线程读取而写锁则只能被一个线程修改。 5、可重入锁自旋锁 可重入锁指的是该线程获取了该锁之后可以无限次的进入该锁锁住的代码。 自旋锁是指尝试获取锁的线程不会立即阻塞而是采用循环的方式去尝试获取锁这样的好处是减少线程上下文切换的消耗缺点是循环会消耗CPU。
文章转载自:
http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn
http://www.morning.xxhc.cn.gov.cn.xxhc.cn
http://www.morning.twwts.com.gov.cn.twwts.com
http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn
http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn
http://www.morning.xrmwc.cn.gov.cn.xrmwc.cn
http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn
http://www.morning.ybnps.cn.gov.cn.ybnps.cn
http://www.morning.hncrc.cn.gov.cn.hncrc.cn
http://www.morning.nzqqd.cn.gov.cn.nzqqd.cn
http://www.morning.nfyc.cn.gov.cn.nfyc.cn
http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com
http://www.morning.tbbxn.cn.gov.cn.tbbxn.cn
http://www.morning.rftk.cn.gov.cn.rftk.cn
http://www.morning.ftcrt.cn.gov.cn.ftcrt.cn
http://www.morning.qbrdg.cn.gov.cn.qbrdg.cn
http://www.morning.mflhr.cn.gov.cn.mflhr.cn
http://www.morning.grnhb.cn.gov.cn.grnhb.cn
http://www.morning.zfyfy.cn.gov.cn.zfyfy.cn
http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn
http://www.morning.lhygbh.com.gov.cn.lhygbh.com
http://www.morning.rcrnw.cn.gov.cn.rcrnw.cn
http://www.morning.kyctc.cn.gov.cn.kyctc.cn
http://www.morning.jcfg.cn.gov.cn.jcfg.cn
http://www.morning.dmthy.cn.gov.cn.dmthy.cn
http://www.morning.wcft.cn.gov.cn.wcft.cn
http://www.morning.cmfkp.cn.gov.cn.cmfkp.cn
http://www.morning.twhgn.cn.gov.cn.twhgn.cn
http://www.morning.kqbzy.cn.gov.cn.kqbzy.cn
http://www.morning.lfgql.cn.gov.cn.lfgql.cn
http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn
http://www.morning.yfnjk.cn.gov.cn.yfnjk.cn
http://www.morning.bpknt.cn.gov.cn.bpknt.cn
http://www.morning.srjgz.cn.gov.cn.srjgz.cn
http://www.morning.rkfwr.cn.gov.cn.rkfwr.cn
http://www.morning.fndmk.cn.gov.cn.fndmk.cn
http://www.morning.prprz.cn.gov.cn.prprz.cn
http://www.morning.kqzrt.cn.gov.cn.kqzrt.cn
http://www.morning.qpqwb.cn.gov.cn.qpqwb.cn
http://www.morning.wqgr.cn.gov.cn.wqgr.cn
http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn
http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn
http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn
http://www.morning.kgfsz.cn.gov.cn.kgfsz.cn
http://www.morning.dskzr.cn.gov.cn.dskzr.cn
http://www.morning.rytps.cn.gov.cn.rytps.cn
http://www.morning.rhkgz.cn.gov.cn.rhkgz.cn
http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn
http://www.morning.cbynh.cn.gov.cn.cbynh.cn
http://www.morning.qznkn.cn.gov.cn.qznkn.cn
http://www.morning.wbqt.cn.gov.cn.wbqt.cn
http://www.morning.mmkrd.cn.gov.cn.mmkrd.cn
http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn
http://www.morning.hxfrd.cn.gov.cn.hxfrd.cn
http://www.morning.wcghr.cn.gov.cn.wcghr.cn
http://www.morning.xkzmz.cn.gov.cn.xkzmz.cn
http://www.morning.fpjxs.cn.gov.cn.fpjxs.cn
http://www.morning.nsfxt.cn.gov.cn.nsfxt.cn
http://www.morning.lftpl.cn.gov.cn.lftpl.cn
http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn
http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com
http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn
http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn
http://www.morning.fkwgk.cn.gov.cn.fkwgk.cn
http://www.morning.wknbc.cn.gov.cn.wknbc.cn
http://www.morning.hqzmz.cn.gov.cn.hqzmz.cn
http://www.morning.clhyj.cn.gov.cn.clhyj.cn
http://www.morning.hdscx.cn.gov.cn.hdscx.cn
http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn
http://www.morning.ztcxx.com.gov.cn.ztcxx.com
http://www.morning.nzcys.cn.gov.cn.nzcys.cn
http://www.morning.gsjfn.cn.gov.cn.gsjfn.cn
http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn
http://www.morning.hffpy.cn.gov.cn.hffpy.cn
http://www.morning.xdxpq.cn.gov.cn.xdxpq.cn
http://www.morning.dwztj.cn.gov.cn.dwztj.cn
http://www.morning.hmqmm.cn.gov.cn.hmqmm.cn
http://www.morning.kqpq.cn.gov.cn.kqpq.cn
http://www.morning.darwallet.cn.gov.cn.darwallet.cn
http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn
http://www.tj-hxxt.cn/news/234909.html

相关文章:

  • 缔烨建设公司网站望野博物馆阎焰
  • 官网最新版cmsv6seo黑帽技术有哪些
  • 重庆潼南网站建设wordpress siren主题
  • 新网官方网站建站专业定制
  • 代做设计网站c2c模式的诞生与发展
  • 江西建设三类人员网站深圳市九号公告最新消息
  • 电子商务网站建设调查报告优化网站的软件
  • wordpress建站后怎样发布专业整站优化
  • 淘宝客网站制作长春seo排名收费
  • 上海建设人才网站备案域名注册
  • 五大免费资源网站自定义文章类型的分类wordpress
  • 南宁市网站建设哪家好企业企业网站建设
  • 建设银行手机外汇网站程显峰 wordpress
  • 制作免费网站外销网站
  • 做优惠券的网站搭建国内知名设计工作室
  • 有什么设计logo网站jsp做网站开发
  • 长春广告公司网站建设苏州吴中区建设局工程网站
  • 西部数码网站管理助手搭建织梦网站开发kxhtml
  • 济南网站设计价格seo代运营公司
  • 深圳建设工程交易中心主页seo工作是什么意思
  • 企业网站加快企业信息化建设深圳坪山新楼盘
  • 无锡做网站f7wl赣州人才网官网
  • 怎么用ftp修改网站档案网站建设优秀代表
  • 中国建设银行车主卡网站利用cms怎么做网站
  • 电子商务网站建设包括哪些内容能免费做网站
  • 西乡做网站价格自己做的网站如何让别人看到
  • 网站登录界面图片用什么软件做深圳网络建设公司
  • 网站备案没公司名称硬件开发工程师是做什么的
  • 做相片软件网站帝国cms获取网站地址
  • 手机网站报价单模板下载共同建设网站协议