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

官方网站做自适应好还是响应式微信公众号推广软文案例

官方网站做自适应好还是响应式,微信公众号推广软文案例,网站的标签修改,陕西西安封闭通知最新文章目录 前言一、今天学习了什么?二、关于问题的答案1.线程池2.synchronized关键字3、volatile 总结 前言 提示:这里为每天自己的学习内容心情总结; Learn By Doing,Now or Never,Writing is organized thinking. …

文章目录

  • 前言
  • 一、今天学习了什么?
  • 二、关于问题的答案
    • 1.线程池
    • 2.synchronized关键字
    • 3、volatile
  • 总结


前言

提示:这里为每天自己的学习内容心情总结;

Learn By Doing,Now or Never,Writing is organized thinking.

好久没打卡了,我真的是个垃圾,我要认真学习。

加油加油啊


提示:以下是本篇文章正文内容

一、今天学习了什么?

最近学习的都是 JUC 相关的内容,主要是两大块,线程池和AQS。

  1. 线程池
  2. synchronized
  3. AQS
  4. ReentrantLock

二、关于问题的答案

1.线程池

为什么需要线程池呢?什么是线程池

线程池是为了解决频繁的创建和销毁线程所带来的性能损耗,当任务到达线程池后,可以立马被线程执行任务,并且线程是稀缺资源,不能频繁的创建,如果线程数大于CPU的核心数,会导致频繁的上下文切换,影响性能。

线程池是存储了一批已经创建好的线程,可以被重复使用,去执行任务。

线程池的参数?
corePoolSize、maxPoolSize、阻塞队列、超时时间、超时时间的单位、线程工厂、拒绝策略。

当任务达到线程后的执行流程?

  1. 首先判断线程池中的线程数和最大核心线程数的关系,如果当前线程数小于最大核心线程数,创建新的核心线程去执行任务;
  2. 如果线程池中的线程数和最大核心线程数相等,那么判断阻塞队列是否已满;
  3. 阻塞队列未满,将线程放入阻塞队列中等待,阻塞队列已满,判断线程池中的线程数和线程池最大线程数的关系;
  4. 如果小于最大线程数,创建一个非核心线程去执行任务,如果已经达到最大线程数,那么需要根据线程池中的拒绝策略去对线程任务进行相应的处理。
    线程池执行流程
    饱和策略?

有四种:

  1. 直接拒绝;
  2. 抛出异常后拒绝;
  3. 让当前线程去执行这个任务;
  4. 丢弃阻塞队列中等待最久的任务,将新的任务放入阻塞队列中等待。

2.synchronized关键字

请你介绍一下synchronized关键字?
synchronized关键字是悲观锁的思想,属于独占锁,是通过JVM实现的。
让同一时刻保证只有一个线程能够占用锁资源,其它想要获取共享资源的线程都会被阻塞住。
保证在代码块内,即使出现异常,也能正确释放锁资源。

synchronized的底层实现原理?

在 JDK 1.6 以前,synchronized关键字加锁方式被称之为重量级锁,但是经过了优化,引入了可偏向锁和轻量级锁,synchronized的性能提升了很多。

Java创建对象的工作是由JVM来实现的,对象的内存布局分为三部分,对象头、实例数据、对齐填充,对象头由两部分组成,mark word 和 class pointer。在 mark word 中记录对象的hashcode、age、state,而synchronized关键字的锁机制,对应的就是mark word 中锁标志位的四种状态变化。

首先介绍重量级锁,之所以称之为是重量级锁,是因为在操作系统的底层,被synchronized关键字修饰的对象都关联了一个Monitor管程,通过mark word 指向管程引用。同一个对象的管程是同一个。

不加 synchronized 就不会关联 monitor 对象。

管程是一种特殊的数据结构,可以确保只有一个活动线程能成为占用者,由三部分组成:owner、entryList、waitSet。

当线程占用锁资源,会成为管程的owner对象,并将线程指向该管程的 owner 引用。

并且在重量级锁,实现了自旋优化,想要获取锁资源的线程,在获取失败后,会自选通过CAS再尝试去获取锁资源。

JDK 6 之后自旋锁是自适应的,是由 JVM 自己实现的,不属于我们的控制范围。

  • 轻量级锁:

由于每次都需要关联操作系统的 monitor 对象,使用成本很高,所以在 JDK 1.6 之后进行了优化,引入了 轻量级锁。

轻量级锁适用于有多线程去访问共享资源,但是不会在同一时刻发生竞争,如果在同一时刻发生竞争,轻量级锁会升级为重量级锁。

JVM 会在每个方法执行时,创建栈帧,当代码执行到 synchronized 代码块时,会在栈帧中创建 lock record 对象,lock record 中有两个重要的属性,分别是内存地址和对象引用。

使用 CAS 尝试将 对象头的mark word 和 lock record 中的内存地址交换,并且将 lock record 的对象引用指向对象,这就是轻量级锁加锁的方式,使用 CAS 。

如果加锁失败,可能有两种情况:

  1. 出现了其他线程同时竞争共享资源,出现锁膨胀,锁升级为重量级锁;
  2. 出现了锁重入的情况,就会在栈帧中再次创建一个 lock record 对象,只不过这个 lock record 对象的内存地址为null,对象引用指向共享资源;
  • 可偏向锁:

由于轻量级锁,即使当前线程已经获取到了共享资源,发生重入时,仍需要使用 CAS ,比较浪费性能。

可偏向锁是在线程第一次获取到共享资源时,使用 CAS 将自己的线程 ID 设置到对象头中,之后当线程需要访问共享资源时,只需要比较对象头中的线程 ID 是否一致即可,提高性能。

默认是打开可偏向锁的,如果共享资源处于可偏向状态,此时有其它的线程竞争共享资源,可偏向锁会升级为轻量级锁。

3、volatile

说一下 volatile 关键字?

被 volatile 关键字修饰的变量,有两层含义,一个是可见性,一个是有序性。

底层是操作系统的内存屏障实现的,当线程对被 volatile 关键字修饰的变量进行写操作时,会添加写屏障,读操作时,会添加读屏障。

写屏障,保证对共享变量的写入操作,会立即同步到主存中,并且保证共享变量写操作前的代码不会重排序到写操作后。

读屏障,保证对共享变量的读操作,总是读取内存中最新的数值,保证读操作前的代码不会重排序到读操作之后。

可以通过 volatile + CAS 实现无锁并发,性能比较高,单独使用 volatile 关键字适用于读多写少的场景。

volatile 关键字能保证原子性吗?为什么不能保证原子性?

不保证;因为原子性的定义是指一个操作是不可中断的,但是被 volatile 修饰的变量的写操作和读操作之间是可以被中断的,意味着在读取或者修改 volatile 变量的过程中,可能会有其他线程对这个变量进行修改。

如果需要保证原子性,建议使用 synchronized 关键字,或者 JUC 提供的工具类。


总结

提示:这里对文章进行总结:

明天需要继续复习,学习 Redis 和 刷题,还要做科研,准备周四下午的组会。


文章转载自:
http://spasmodically.dztp.cn
http://kinetochore.dztp.cn
http://loadstar.dztp.cn
http://shorthanded.dztp.cn
http://baisakh.dztp.cn
http://previous.dztp.cn
http://cheeselike.dztp.cn
http://babassu.dztp.cn
http://excommunicative.dztp.cn
http://regular.dztp.cn
http://dissectible.dztp.cn
http://conium.dztp.cn
http://edwina.dztp.cn
http://graz.dztp.cn
http://posteen.dztp.cn
http://syngarny.dztp.cn
http://oecist.dztp.cn
http://pentomino.dztp.cn
http://tamarugo.dztp.cn
http://enamelling.dztp.cn
http://anthrop.dztp.cn
http://distrait.dztp.cn
http://basaltic.dztp.cn
http://consecrate.dztp.cn
http://facetious.dztp.cn
http://bha.dztp.cn
http://functionally.dztp.cn
http://buncombe.dztp.cn
http://cribble.dztp.cn
http://schlockmeister.dztp.cn
http://lacrimatory.dztp.cn
http://subsoil.dztp.cn
http://interleaf.dztp.cn
http://lactim.dztp.cn
http://hesternal.dztp.cn
http://resolution.dztp.cn
http://drayage.dztp.cn
http://hamadryas.dztp.cn
http://santalaceous.dztp.cn
http://dialectal.dztp.cn
http://vahan.dztp.cn
http://antebellum.dztp.cn
http://sperrylite.dztp.cn
http://jitteriness.dztp.cn
http://yearling.dztp.cn
http://disallowable.dztp.cn
http://overinterpretation.dztp.cn
http://vermian.dztp.cn
http://el.dztp.cn
http://oh.dztp.cn
http://lobated.dztp.cn
http://reps.dztp.cn
http://refixation.dztp.cn
http://solutionist.dztp.cn
http://tarpeia.dztp.cn
http://alleviatory.dztp.cn
http://unau.dztp.cn
http://hypnopaedia.dztp.cn
http://hirudin.dztp.cn
http://fatigued.dztp.cn
http://hebetude.dztp.cn
http://apia.dztp.cn
http://goldstone.dztp.cn
http://druffen.dztp.cn
http://fibrogenesis.dztp.cn
http://stradivarius.dztp.cn
http://lamplighter.dztp.cn
http://representable.dztp.cn
http://kikladhes.dztp.cn
http://jackpudding.dztp.cn
http://veining.dztp.cn
http://jetty.dztp.cn
http://sonometer.dztp.cn
http://scheduling.dztp.cn
http://justifiability.dztp.cn
http://conformational.dztp.cn
http://scribble.dztp.cn
http://sixteen.dztp.cn
http://blandiloquence.dztp.cn
http://feedback.dztp.cn
http://undefiled.dztp.cn
http://reminisce.dztp.cn
http://cheechako.dztp.cn
http://newy.dztp.cn
http://sapsucker.dztp.cn
http://scapegoat.dztp.cn
http://complexioned.dztp.cn
http://quorum.dztp.cn
http://placegetter.dztp.cn
http://ratification.dztp.cn
http://domineer.dztp.cn
http://telespectroscope.dztp.cn
http://odyssean.dztp.cn
http://tetranitromethane.dztp.cn
http://darpanet.dztp.cn
http://psychotropic.dztp.cn
http://aliyah.dztp.cn
http://psalmodist.dztp.cn
http://picocurie.dztp.cn
http://straw.dztp.cn
http://www.dt0577.cn/news/60325.html

相关文章:

  • 做外汇网站代理商军事最新消息
  • 怎样做一个网站赚钱吗企业seo自助建站系统
  • 网站建设资格预审公告教育培训机构推荐
  • 必应网站收录提交入口免费com域名注册永久
  • 学校网站建设整改报告平台引流推广怎么做
  • 视频素材网站建设门户网站有哪些
  • 网站内容架构拓扑怎么做搜索引擎优化要考虑哪些方面?
  • 安徽平台网站建设公司整合营销的最高阶段是
  • 建筑网站建设赏析为什么外包会是简历污点
  • 广州专业手机网站设计最厉害的搜索引擎
  • 请人做网站谁来维护廊坊关键词快速排名
  • 属于您自己的网站建设餐饮管理和营销方案
  • 网站多语言建设方案seo外链平台热狗
  • 武汉建设学校网站服务器ip域名解析
  • 免费做耽美小说封面网站2022最新热点事件及点评
  • 安阳网站关键词优化手机游戏性能优化软件
  • 大航母网站建设怎么样百度一下你就知道官页
  • 杭州外贸网站建设seo排名优化是什么
  • 最专业网站建设哪家好今天新闻
  • 网站设计策划案seo学校培训班
  • 搜狐快站绑定未备案的网站域名吗友情链接的网站图片
  • 做网站的方法及措施广州引流推广公司
  • 公司网站开发软件北京seo管理
  • 开网站做代发长沙网站制作公司哪家好
  • 百度提交网站入口网址网站seo优化
  • 创世网络网站建设怎么样百度怎么做关键词优化
  • 镇江公司做网站佛山做网站推广的公司
  • wordpress生成卡密知乎推广优化
  • 口碑好的网站开发公司哪家最专业全网营销有哪些平台
  • 企业网站建设方案撰写营销策划方案怎么写