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

重庆购物网站建设网站栏目推介怎么做

重庆购物网站建设,网站栏目推介怎么做,百度一下就知道官方,网络推广网站电话目录 一. 什么是线程安全 二. 线程安全问题产生的原因 三. 线程安全问题的解决 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://www.yayakq.cn/news/136944/

相关文章:

  • 如何百度收录自己的网站wordpress免签插件
  • 电商网站开发分销商wordpress运行机制
  • 天津网站建设公司seoheuni
  • 莱芜警方网站官网dw手机网站建设
  • 阿里巴巴官网网站开发一个app成本
  • 建设厅网站账号密码忘记怎么办wordpress 504错误
  • 网站 目标电脑平面设计软件
  • 卡盟网站制作教程网站设计做哪些的
  • 个人做网站名称可以随意更改吗设计本和游戏本区别
  • 网站建设化妆品的目录广州越秀区发布紧急通告
  • 全能网站建设完全自学网站权重怎么提高
  • 直接在原备案号下增加新网站客户登记管理系统
  • 四川建设厅官方网站证书查询网站制作的部分
  • 电影片头在线制作网站微信公众号如何运营与推广
  • 郑州专业的网站建设网站建设费如何入帐
  • 网站答辩ppt怎么做网络销售平台有哪些
  • 网站怎么做qq授权登录界面学科建设的网站
  • 惠州网站建设 惠州邦百度百科词条创建入口
  • 网站的页脚北京网站建设还公司
  • 网站举报有奖平台博物馆设计
  • 网站风格一般具有哪三大特征wordpress如何修改背景图片
  • 网站建设需要的手续wordpress做支付宝
  • qq空间做网站包头网站
  • 帮人盖章网站备案授权书百度收录万网空间的网站需要多久
  • 濮阳哪里做网站网站规划与网页设计第四版电子书
  • 网站制作湖州百度一下首页官网下载
  • 网站建设 软文做网站 博客
  • 沈阳开发网站公司哪家好网页设计与制作个人网站
  • 网站建设的主要情况说明定制高端网站建设服务商
  • 南宁做网站的有几家直通车怎么开效果最佳