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

wordpress加个文本框班级优化大师手机版下载(免费)

wordpress加个文本框,班级优化大师手机版下载(免费),百度投放广告一天多少钱,外贸公司网站开发什么是线程安全的(thread-safe)#xff1f;在java中#xff0c;线程安全的指的是代码可以在并发的或者多线程的环境下安全的使用或者共享#xff0c;并且它们都将按照期望的方式运行。任何代码#xff0c;类或者对象#xff0c;如果它们在并发的环境中运行表现出的行为与在…什么是线程安全的(thread-safe)在java中线程安全的指的是代码可以在并发的或者多线程的环境下安全的使用或者共享并且它们都将按照期望的方式运行。任何代码类或者对象如果它们在并发的环境中运行表现出的行为与在非并发环境下表现出的行为不一致那么它们就不能被称为线程安全的。本片文章不会非常仔细的介绍线程安全或者Java中的异步处理我们将通过几个例子来帮助你理解什么是线程安全的然后告诉你如何让你的代码线程安全。一个non-thread-safe的例子public class Counter {private int count;/** 这个方法不是线程安全的因为操作不是原子操作*/public int getCount(){return count;}} 上面的例子不是线程安全的因为(自增操作)不是一个原子操作(atomic operation)而是会被拆分成读、更新和写操作(read,update,write)三部分如果多个线程大约在同一时刻调用getCount()方法这三个操作可能会互相重合(coincide)或者重叠(overlap)比如当thread1正在更新数据thread2此时读取数据那他将会获得原来的旧数据最后的结果就是thread2会覆盖掉thread1对数据的增加操作结果就是一个数据被丢失了就是因为程序是并发调用的。如何在Java中实现线程安全要使上面的方法线程安全可以有很多种方式1)使用synchronized关键字来锁定getCount方法以保证同一时刻只有一个线程可以访问getCount方法这样做就能避免重合(coincide)或者重叠(overlap)问题。2)使用AutomicInteger这样就将变成了原子操作因为原子操作是线程安全的这样做还节省了额外的同步操作的开销。下面是一个实现线程安全的例子public class Counter {private int count;AtomicInteger atomicCount new AtomicInteger( 0 );/** 现在这个方法是线程安全的因为增加了synchronized*/public synchronized int getCount(){return count;}/**这个方法是线程安全的因为count的增加操作是原子操作*/public int getCountAtomically(){return atomicCount.incrementAndGet();}} 关于Thread-Safe的一些重要的点这些点在你写线程安全的程序的时候是很有用的而且也能帮你避免一些很严重的并发问题比如竞争条件(race condition)或者死锁1)不可变的对象(immutable objects)默认就是线程安全的因为它们的状态一旦创建就不能被改变。由于字符串在Java中就是不可变的所以它们原本就是线程安全的(关于不可变对象后期会有相关文章进行说明)。2)只读的或者被final修饰的变量也是线程安全的。3)锁机制在Java中是一种实现线程安全的方式。4)静态变量如果没有被正确的synchronized那么它将成为线程安全问题的主要原因。5)Java中的一些线程安全的例子Vector, Hashtable, ConcurrentHashMap, String等。6)Java中的原子操作是线程安全的比如从内存中读取一个32位的int值是线程安全的因为它是原子操作所以不会与其他线程交错。7)局部变量也是线程安全的因为每一个线程都会有属于她自己的一份拷贝。使用局部变量是一种很好的实现线程安全的方式。8)为了实现线程安全尽可能地减少多个线程中对象的共享。9)volatile关键字可以用来指示线程不缓存该变量而是直接从主内存中读取也可以指示JVM不从多线程的角度来重新排序或者优化代码(not to reorder or optimize code from threading perspective)。以上就是本文介绍的一些内容。线程安全是一个比较难以掌握的概念为了确定程序是否线程安全你需要考虑多并发的情况另外JVM为了会对代码进行优化而优化的过程就会涉及到对代码的重新排序所以看起来是串行的程序在开发环境中运行良好但并不能保证在生产环境中会同样良好因为JVM会尽最大可能的进行调整从而进行一些代码重排序和优化这样就会导致线程安全的问题。----------------------------------------------------------------小人不才如有问题欢迎各位不吝赐教
http://wiki.neutronadmin.com/news/296657/

相关文章:

  • 建设第三方公众号平台网站教程wordpress个人模板
  • 设计网站建设书南昌做网站目的
  • 一个好的网站是什么样的渠道网络
  • 学计算机网站开发好吗标书制作代做公司
  • 网站建设免费软件海南注册公司怎么注册
  • 网站集约化建设的建议给手机做网站的公司
  • sql可以做网站吗网站建设行业发展趋势
  • 手机看黄山网站撰写网站建设规划设计任务书
  • 网站搭建工作怎么样搜索引擎优化趋势
  • 邢台市政建设集团网站重庆制作网站培训
  • 数据库网站建设教程上海百度seo网站优化
  • 东莞百度网站快速排名上海网站建设有限公司
  • 外贸箱包网站模板金坛做网站的
  • 街区网站建设的意义django网站开发视频教程下载
  • 不会编程怎样建设网站来雁新城建设投资公司官方网站
  • 宁河做网站公司网站 图标 gif
  • 郑州小程序开发外包公司什么是seo是什么意思
  • 公司网站建设 上海前端app开发流程
  • 网站开发工作简历高端网站设计报价表
  • 做网站自适应框架易烊千玺网页设计模板
  • 网站名称注册保护长春火车站有几个
  • 硅胶模具技术支持东莞网站建设查企业的信息在哪个官网
  • 网站设计公司网标识设计厂家
  • pc端网站优缺点wordpress表单位插件
  • 个人公众号做电影网站吗网页搭建app
  • 安徽建设厅官方网站163 com邮箱注册
  • wordpress一键仿站做三个月网站广告收入
  • 企业建设网站的必要性母婴类网站怎么建设
  • 网站平台搭建包括哪些wordpress加图片
  • 网站建设合同的性质wordpress判断登录