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

wordpress 多网站山东手机网站建设电话

wordpress 多网站,山东手机网站建设电话,wordpress初始设置密码,设计一套企业网站多少钱1 学习多线程知识的根本目标多线程知识的根本目标是#xff1a;设计稳健的并发程序。当然#xff0c;本文无法回答这个实践性很强的问题(这与具体的业务相关#xff0c;涉及到具体的策略)#xff0c;本文主要阐述相关知识之间的关系#xff0c;希望初学者不要迷失在多线程…1 学习多线程知识的根本目标多线程知识的根本目标是设计稳健的并发程序。当然本文无法回答这个实践性很强的问题(这与具体的业务相关涉及到具体的策略)本文主要阐述相关知识之间的关系希望初学者不要迷失在多线程工具类的API接口中。2 并发程序的三大宏观问题线程安全性问题、性能问题、活跃性问题。 三者的关系是在设计并发程序过程中要首先保证线程安全在线程安全的基础上努力提升程序性能在保证线程安全与提升性能时避免引入活跃性问题。线程安全是最重要的设计并发程序是为了提升程序的性能但是永远不要忘记性能是建立在安全的基础上的而在保证安全性(如加锁、同步等方法)及优化并发性能(如通过锁分解、锁分段等方法)过程中可能会引入活跃性问题(如死锁、饥饿、活锁、糟糕的响应性等问题)。 本文主要阐述线程安全问题的知识。3 线程安全性3.1 线程安全性的定义当多个线程访问某个类时这个类始终都能表现出正确的行为那么就称这个类是线程安全的。最核心的概念就是正确性。正确性的含义是某个类的行为与其规范完全一致。就像你要设计一道菜那么组成这道菜的食材和调料一定是可控的即你能确切的描述对这些食材和调料操作的结果比如放油菜会香放盐菜会咸并且知道菜快熟时再放盐只有对构成这道菜的所有元素都清楚明晰设计出的菜才符合设想。设计程序时也一样只有使用的各个变量和函数是可控的设计出的程序才能按照设计运行。而多线程的使用可能会使得组成程序的某些变量和行为变得不可控。3.2 为什么多线程会带来线程安全性问题要阐明线程安全性问题需要深入到JAVA内存模型这里暂时不引入这里用两个生活中的例子来阐述线程安全性问题的本质(原子性问题和可见性问题)。【例1】以炒菜为例。其中有个操作是放盐放盐的操作可分解为三个步骤“找到盐罐→检查盐罐装的是盐→菜快熟的时候将盐倒入菜中”。如果只有一个人在使用盐罐那么不会有什么问题。但是如果在你“检查盐罐中装的是盐”之后将盐倒入菜中之前另一个人拿走了盐罐装了三氯氰胺奶粉然后将盐罐放回。这个调换过程你并不知道最后你将调换过的三氯氰胺奶粉倒入了菜中结果可想而知。这就是线程安全性问题的原子性问题。从内存模型理解原子性问题juejin.im/post/684490…【例2】以A和B协作煮米饭为例。有三个房间(厨房、控火室、观察室)厨房有个锅煮着米饭(锅上有张纸写着“已熟”或者“未熟”)A在控火室负责关火(当看到锅上的纸写着“已熟”时关火)B在观察室负责观察米的状态并修改锅上贴纸的状态字(已熟/未熟)A和B不在一个房间无法直接交流B隔一会观察下锅里的米如果米熟了就在一张纸上写“已熟”未熟就写“未熟”B很忙写完字后将纸贴在了自己门上未贴在厨房的锅上。最终结果是A看到锅上的状态字一直是“未熟”所以不关火最终米饭糊了。这就是可见性问题。从内存模型理解可见性问题juejin.im/post/684490…3.3 解决原子性问题和内存可见性的核心要编写线程安全的代码其核心在于要对状态(变量)访问操作进行管理特别是对共享的和可变的状态的访问。共享意味着可由多个线程访问操作可变意味着可以被修改。上述例1中如果盐罐不共享即其他人不能使用则不会有线程安全性问题。如果规定不能往盐罐中装入只能从盐罐中取出那么不管多少个人可以操作盐罐盐罐中始终是盐没有线程安全性问题同样如果一个变量不能被修改那么不管多少个线程操作这个变量也不会带来线程安全性问题。上述例2中如果强制B在修改状态字后将纸贴在锅上那么就可以让A看到米饭的真正状态就可以及时关掉火蒸出香喷喷的米饭。那么为了解决原子性问题和内存可见性问题怎么对共享的且可变的变量进行管理除非需要某个域是可变的否则应将其声明为final域(即声明为不可变的)将对共享变量的并行操作转换为串行操作(如同步机制、将变量委托给同步容器进行管理)将共享变量转换为不共享变量(如线程封闭(栈封闭、ThreadLocal类等))如果某个操作需要以原子方式执行那么就想办法保证这个操作是原子方式执行(如给操作加锁)对于需要保证内存可见性的变量可以强制线程从主内存而不是缓存中读取变量在线程存储变量时强制存取到主内存中。(如加锁声明volatile变量)切记核心是管理共享的可变状态锁(内置锁、Lock锁)、同步容器类(Vector、Hashtable等)、并发容器类(ConcurrentHashMap、CopyOnWriteArrayList)、同步工具类(闭锁、信号量、栅栏)、线程池等都只是是管理共享的可变状态的工具。
http://www.pierceye.com/news/229909/

相关文章:

  • 网站空间域名维护协议网站备案的意义
  • word可以做网站链接吗网站推广的基本方法有哪些
  • 公司展示型网站wordpress后台邮箱怎么设置
  • 小程序咸鱼之王2022年搜索引擎优化指南
  • 企业网站建设 价格wordpress汉化主题
  • 兰州市建设厅官方网站做网站用的编程工具
  • 网站建设及维护招聘周口航迪科技网站建设公司怎么样
  • 服装外贸网站建设discuz应用
  • flash个人网站欣赏网站营销单页怎么做
  • 设计网站用什么语言网站建设需求范文
  • seo织梦网站建设步骤昆明网络营销软件
  • 企业网站 静态页面成都设计公司邮箱
  • 创世网站建设 优帮云北京网站建设工作室
  • 网站空间提供商哪个网站可以做英文兼职
  • 社区网站制作平台网站建设调研报告
  • 不会建网站怎么赚钱dw个人主页模板
  • 自助建站系统哪个好thinkphp做的网站源码
  • 广州企业网站模板建站现在有什么网站可以做兼职的
  • 网站开发 公司百度seo公司整站优化软件
  • 沈阳学网站制作学校网络推广龙岗比较好的
  • 佛山 建站公司网站风格一般具有哪三大特征
  • 网站的二级页面怎么做济南网站建设行知科技不错
  • 网站赢利如何查看实时街景地图
  • 手表网站欧米茄官方网络平台管理制度和管理办法
  • 北京网站建设网站网站不用工具开发建设
  • 杭州做网站外包公司有哪些网站幻灯片效果
  • 北京模板建站代理好看怎么上传视频网站吗
  • 品牌网站建设小科6a蚪html制作电影网页
  • 环保网站建设维护情况报告北京seo方法
  • 网站建设及使用企业名字查重系统