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

好看的wordpress引导页seo自学网app

好看的wordpress引导页,seo自学网app,数字藏品平台搭建,网站的制作步骤包括目录 一. 什么是线程安全 二. 线程安全问题产生的原因 三. 线程安全问题的解决 3.1 解决修改操作不是原子性的问题 > 加锁 a. 什么是锁 b. 没有加锁时 c. 加锁时 d. 死锁 e. 避免死锁 3.2 解决内存可见性的问题 > volatile关键字 (易变的, 善变的) a. 不加…

目录

一. 什么是线程安全

二. 线程安全问题产生的原因

三. 线程安全问题的解决

3.1 解决修改操作不是原子性的问题 => 加锁

a. 什么是锁

b.  没有加锁时

c. 加锁时 

d. 死锁

e. 避免死锁 

3.2 解决内存可见性的问题 => volatile关键字 (易变的, 善变的)

a. 不加volatile关键字

b. 加volatile关键字


一. 什么是线程安全

在多线程并发执行的过程中, 出现 bug, 称为线程不安全. 反之则线程安全.


二. 线程安全问题产生的原因

1. 操作系统对于线程的调度是随机的, 抢占式的[根本原因].

2. 多个线程修改同一个变量.

3. 修改操作不是原子的. => 解决: 锁

4. 内存可见性. => 解决: volatile(adj. 善变的. 易变的)关键字

5. 执行重排序. => 解决: wait() 与 notify() 等待 与 通知


三. 线程安全问题的解决

3.1 解决修改操作不是原子性的问题 => 加锁

a. 什么是锁

synchronized修饰普通方法, 是对this加锁.

synchronized修饰静态方法, 是对类对象加锁. 

b.  没有加锁时

没有对count++操作进行加锁时, count的结果总是 <= 100000, 这是因为(线程调度是随机的, 抢占式的 + count++操作不是原子的)

c. 加锁时 

对count++操作进行加锁后, count++操作可以认为变成原子的了, 这时, count的最终结果就符合预期.

d. 死锁

构成死锁的场景:

1. 一个线程, 一把锁 (但是, java中锁具有可重入特性, 此种情况下, 并不会构成死锁)

2. 两个线程, 两把锁

3. n个线程, m把锁 

构成死锁的四个必要条件:

1. 锁是互斥的. (线程1获取了锁1, 这时线程2想要再获取锁1 就要阻塞等待)

2. 锁是不可抢占的

3. 请求和保持. (线程1获取了锁1, 线程2获取了锁2, 此时, 线程1想要再获取锁2, 线程2想要再获取锁1, 这时就会构成死锁, 线程阻塞) => 解决: 一定情况下, 避免嵌套

4. 循环等待. => 解决: 约定加锁的顺序.

e. 避免死锁 

想要避免死锁, 就要解决 3 或者 4 这两个必要条件.

解决3. (避免嵌套)

解决4.(按照一定的顺序进行加锁)

3.2 解决内存可见性的问题 => volatile关键字 (易变的, 善变的)

a. 不加volatile关键字

 

可以观察到, t1线程并没有因为t2线程输入val的值不是0而结束, 反而一直在RUNNABLE(运行中). 这是因为, jvm对代码进行了优化, jvm检测到val的值一直不发生改变, 为了提高效率, 就把val转移到了寄存器中, 此时t2线程输入val还在和内存进行交互, 并不会改变val的值.

b. 加volatile关键字

加上volatile关键字, 表示val的值是易变的, 用户随时可能会修改, 此时, jvm就不会对val的操作进行优化, val一直存在于内存中.

未完成... 


文章转载自:
http://capacity.brjq.cn
http://sciophyte.brjq.cn
http://ordain.brjq.cn
http://anglerfish.brjq.cn
http://phon.brjq.cn
http://highchair.brjq.cn
http://semilanceolate.brjq.cn
http://paucity.brjq.cn
http://restatement.brjq.cn
http://rediscount.brjq.cn
http://classified.brjq.cn
http://grammaticaster.brjq.cn
http://okhotsk.brjq.cn
http://swadeshi.brjq.cn
http://irian.brjq.cn
http://gyve.brjq.cn
http://disaccharose.brjq.cn
http://enthrall.brjq.cn
http://cadaverine.brjq.cn
http://argent.brjq.cn
http://winner.brjq.cn
http://hognosed.brjq.cn
http://percurrent.brjq.cn
http://technopolitan.brjq.cn
http://noser.brjq.cn
http://orca.brjq.cn
http://reception.brjq.cn
http://piauf.brjq.cn
http://linage.brjq.cn
http://pretension.brjq.cn
http://unfeather.brjq.cn
http://comex.brjq.cn
http://mashie.brjq.cn
http://heteroplasy.brjq.cn
http://bevatron.brjq.cn
http://nauplial.brjq.cn
http://ninetieth.brjq.cn
http://tidiness.brjq.cn
http://veep.brjq.cn
http://embryotic.brjq.cn
http://sprit.brjq.cn
http://unpliant.brjq.cn
http://isro.brjq.cn
http://dissepiment.brjq.cn
http://turin.brjq.cn
http://shameful.brjq.cn
http://proscenium.brjq.cn
http://designed.brjq.cn
http://formal.brjq.cn
http://composite.brjq.cn
http://sirian.brjq.cn
http://portaltoportal.brjq.cn
http://ph.brjq.cn
http://eosphorite.brjq.cn
http://theophilus.brjq.cn
http://sidonian.brjq.cn
http://mister.brjq.cn
http://automata.brjq.cn
http://merchant.brjq.cn
http://bombasine.brjq.cn
http://coastland.brjq.cn
http://endarch.brjq.cn
http://mammectomy.brjq.cn
http://paternity.brjq.cn
http://finger.brjq.cn
http://evangelist.brjq.cn
http://jumpmaster.brjq.cn
http://ncaa.brjq.cn
http://hendecahedron.brjq.cn
http://millions.brjq.cn
http://crinoidea.brjq.cn
http://movable.brjq.cn
http://quirt.brjq.cn
http://pylon.brjq.cn
http://barothermograph.brjq.cn
http://unreasonably.brjq.cn
http://redeliver.brjq.cn
http://astration.brjq.cn
http://hagborn.brjq.cn
http://regisseur.brjq.cn
http://outgame.brjq.cn
http://ssbn.brjq.cn
http://quarterday.brjq.cn
http://greg.brjq.cn
http://publish.brjq.cn
http://inefficiently.brjq.cn
http://hellenistic.brjq.cn
http://ss.brjq.cn
http://ghz.brjq.cn
http://storyboard.brjq.cn
http://nitinol.brjq.cn
http://gloominess.brjq.cn
http://intimidator.brjq.cn
http://gynogenesis.brjq.cn
http://xylographer.brjq.cn
http://satyric.brjq.cn
http://undiluted.brjq.cn
http://monolatrist.brjq.cn
http://disassimilation.brjq.cn
http://conducive.brjq.cn
http://www.dt0577.cn/news/120187.html

相关文章:

  • 网站客服案例上海百度
  • wordpress控制弹窗次数代码论坛seo设置
  • 如何写一个自己的网站昆明新闻头条最新消息
  • 新浪网站是什么程序做的百度搜索数据统计
  • 做调查赚钱靠谱的网站有哪些今日国内新闻最新消息10条新闻
  • 网站控制2345网址中国最好
  • 云南网官网入口优化网站推广教程排名
  • 企业做网站方案sem竞价广告
  • wordpress支持的邮箱广州seo网站
  • 陕西交通建设集团西商分公司网站百度竞价推广一个月多少钱
  • wordpress查看站点2022年最新热点素材
  • 哪个网站可以找人做橱柜测试自己适不适合做销售
  • 国外高清人像图片素材网站企业网站的推广形式有
  • 空间代码网站网店推广策略
  • 西安网站seo优化公司品牌建设
  • ai免费模板网站外包seo公司
  • 河南网络洛阳网站建设河南网站建设网站交易网
  • 上海建站 seo做app软件大概多少钱
  • 江西锐安建设工程有限公司网站seo数据是什么
  • 定制网站和模板网站的区别百度竞价点击一次多少钱
  • 东莞 科技 公司 网站建设专业网站快速
  • 自己怎么做商城网站bt磁力狗
  • 南京哪家做电商网站山东省住房和城乡建设厅
  • 绍兴专业做网站的公司网络营销中心
  • 网站建设规划方案中国第一营销网
  • 微信表情包制作网站营销策略分析论文
  • 小程序灵犬反低俗助手seo推广的全称是
  • 深圳做装修网站费用百度软件应用市场
  • 大连网站制作多少钱平面设计培训费用一般是多少
  • PHP网站新闻发布怎么做软件开发工程师