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

高校网站集群平台子站开发门户网站通俗理解

高校网站集群平台子站开发,门户网站通俗理解,创意设计英文翻译,东莞网站建设哪家公司好主要学习那些场景需要额外注意线程安全问题#xff0c;在这里总结了四中场景。 访问共享变量或资源 第一种场景是访问共享变量或共享资源的时候#xff0c;典型的场景有访问共享对象的属性#xff0c;访问static静态变量#xff0c;访问共享的缓存#xff0c;等等。因为…主要学习那些场景需要额外注意线程安全问题在这里总结了四中场景。 访问共享变量或资源 第一种场景是访问共享变量或共享资源的时候典型的场景有访问共享对象的属性访问static静态变量访问共享的缓存等等。因为这些信息不仅会被一个线程访问到。还有可能被多个线程同时访问那么就有可能在并发读写的情况下发生线程安全问题。比如我们上一课讲过的多线程同时i的例子 如代码所示两个线程同时对 i 进行 i 操作最后的输出可能是 15875 等小于20000的数而不是我们期待的20000这便是非常典型的共享变量带来的线程安全问题。 依赖时序的操作 第二个需要我们注意的场景是依赖时序的操作如果哦我们的操作的正确性是依赖时序的而在多线程的情况下又不能保障执行的顺序和我们预想的一致这个时候就会发生线程安全的问题如下面的代码所示 代码中首先检查 map 中有没有 key 对应的元素如果有则继续执行 remove 操作。此时这个组合操作就是危险的因为它是先检查后操作而执行过程中可能会被打断。如果此时有两个线程同时进入 if() 语句然后它们都检查到存在 key 对应的元素于是都希望执行下面的 remove 操作随后一个线程率先把 obj 给删除了而另外一个线程它刚已经检查过存在 key 对应的元素if 条件成立所以它也会继续执行删除 obj 的操作但实际上集合中的 obj 已经被前面的线程删除了这种情况下就可能导致线程安全问题。 类似的情况还有很多比如我们先检查x1如果x1就修改x的值代码如下所示 这样类似的场景都是同样的道理“检查与执行”并非原子性操作在中间可能被打断而检查之后的结果也可能在执行时已经过期、无效换句话说获得正确结果取决于幸运的时序。这种情况下我们就需要对它进行加锁等保护措施来保障操作的原子性。 不同数据之间存在绑定关系 第三种需要我们注意的线程安全场景是不同数据之间存在相互绑定关系的情况。有时候我们的不同数据之间是成组出现的存在着相互对应或绑定的关系最典型的就是 IP 和端口号。有时候我们更换了 IP往往需要同时更换端口号如果没有把这两个操作绑定在一起就有可能出现单独更换了 IP 或端口号的情况而此时信息如果已经对外发布信息获取方就有可能获取一个错误的 IP 与端口绑定情况这时就发生了线程安全问题。在这种情况下我们也同样需要保障操作的原子性。 对方没有声明自己是线程安全的 第四种值得注意的场景是在我们使用其他类时如果对方没有声明自己是线程安全的那么这种情况下对其他类进行多线程的并发操作就有可能会发生线程安全问题。举个例子比如说我们定义了 ArrayList它本身并不是线程安全的如果此时多个线程同时对 ArrayList 进行并发读/写那么就有可能会产生线程安全问题造成数据出错而这个责任并不在 ArrayList因为它本身并不是并发安全的正如源码注释所写的 Note that this implementation is not synchronized. If multiple threads access an ArrayList instance concurrently, and at least one of the threads modifies the list structurally, it must be synchronized externally. 这段话的意思是说如果我们把 ArrayList 用在了多线程的场景需要在外部手动用 synchronized 等方式保证并发安全。 所以 ArrayList 默认不适合并发读写是我们错误地使用了它导致了线程安全问题。所以我们在使用其他类时如果会涉及并发场景那么一定要首先确认清楚对方是否支持并发操作以上就是四种需要我们额外注意线程安全问题的场景分别是访问共享变量或资源依赖时序的操作不同数据之间存在绑定关系以及对方没有声明自己是线程安全的。
http://www.hkea.cn/news/14584863/

相关文章:

  • 佛山外贸建站公司沧州建设网站公司
  • 基于wordpress个人博客网站论文企业黄页大全
  • 网站设计西安学习外贸网站搭建一站式服务
  • 建设公司的网站制作永乐网站建设
  • 凡科建站可以做几个网站建设银行个人官方网站
  • 商城类网站价格看广告赚钱
  • 木门行业网站该怎么做娄底网站建设网站
  • 去哪找做网站的人自己做头像的软件
  • 闸北做网站公司wordpress需要ftp登录
  • dede网站安全设置防挂马教程wordpress移植数据库
  • 旅游网站设计的目的wordpress首页等待画面
  • 河南国邦卫可生物科技有限公司网站建设洛阳网络科技有限公司
  • 公司备案网站名称想百度搜到网站新域名怎么做
  • 网站域名价格 优帮云装修网名大全
  • 模型外包网站网站顶部图片代码
  • 做外商备案的网站仿造别人的网站侵权吗
  • 全国做临期进口食品的网站一个域名一个主机可以做两个网站吗
  • 哪些企业需要网站建设平面广告设计介绍
  • 个人域名可以做网站吗河北网站设计制作
  • 网站专题页面设计规范沈阳网站页面设计公司
  • 公司网站制作都需要图片网站怎样排版
  • 淮安网站建设制作辅导班广告去哪个网站做
  • 做网站都需要年服务费吗龙岩网站制作设计
  • 成都专业网站推广公司大连网站建设 领超最好
  • 网站优化自己做该怎么做天下第一社区在线观看 welcome
  • 中国域名网站排名制作网页时若要使链接目标在新窗口中打开则应用选择
  • 医药网站 备案怎么批量修改wordpress文章内容
  • 怎么根据已有网站做新网站南宁广告网页设计招聘
  • 做米业的企业网站常州专业做网站公司
  • 阜宁做网站哪家最好网站建设与数据库管理