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

三门峡市住房建设局网站wordpress centos7

三门峡市住房建设局网站,wordpress centos7,支持wordpress免费,网站伪静态是什么意思Java实现100万 的高并发、高性能设计 1、简述 现百万级并发编是一项综合性的技术#xff0c;同时#xff0c;它与现实生活中 的场景有着紧密的联系。 搞懂并发编程有三大核心问题 分工问题 同步问题 互斥问题 本文就对这三大核心问题进行简单的介绍 2、分工问题 关于分工…Java实现100万 的高并发、高性能设计 1、简述 现百万级并发编是一项综合性的技术同时它与现实生活中 的场景有着紧密的联系。 搞懂并发编程有三大核心问题 分工问题 同步问题 互斥问题 本文就对这三大核心问题进行简单的介绍 2、分工问题 关于分工比较官方的解释是一个比较大的任务被拆分成多个大小合适的任务这些大小合适的任务被交给合适的线程去执行。 分工强调的是执行的性能。 类比现实案例 可以类比现实生活中的场景来理解分工例如如果你是一家上市公司的 CEO那么你的主要工作就是规划公司的战略方向和管理好公司。就如何管理好公司而言涉及的任务就比较多了。 这里可以将管理好公司看作一个很大的任务这个很大的任务可以包括人员招聘与管理、 产品设计、产品开发、产品运营、产品推广、税务统计和计算等。如果将这些工作任务都交给 CEO一个人去做那么估计 CEO 会被累趴下的。 有一种很好的方式是分解公司的日常工作将人员招聘与管理工作交给人力资源部将产 品设计工作交给设计部将产品开发工作交给研发部将产品运营和产品推广工作分别交给运 营部和市场部将公司的税务统计和计算工作交给财务部。 这样CEO 的重点工作就变成了及时了解各部门的工作情况统筹并协调各部门的工作 并思考如何规划公司的战略。 将公司的日常工作分工后可以发现各部门之间的工作是可以并行推进的。例如在人力资源部进行员工的绩效考核时设计部和研发部正在设计和开发公司的产品与此同时公司的运营人员正在和设计人员与研发人员沟通如何更好地完善公司的产品而市场部正在加大力度宣传和推广公司的产品财务部正在统计和计算公司的各种财务报表等。一切都是那么有条不紊。 所以在现实生活中安排合适的人去做合适的事情是非常重要的。映射到并发编程领域 也是同样的道理。 并发编程中的分工 在并发编程中同样需要将一个大的任务拆分成若干比较小的任务并将这些小任务交给 不同的线程去执行。 将一个大的任务拆分成若干比较小的任务 在并发编程中由于多个线程可以并发执行所以在一定程度上能够提高任务的执行效率。 在并发编程领域还需要注意一个问题就是将任务分给合适的线程去做。也就是说该由主线程执行的任务不要交给子线程去做否则是解决不了问题的。 这就好比一家公司的 CEO 将规划公司未来的工作交给一位产品开发人员一样不仅不能规划好公司的未来甚至会与公司的价值观背道而驰。 在Java 中线程池、Fork/Join 框架和 Future 接口都是实现分工的方式。在多线程设计模式中Guarded Suspension 模式、Thread-Per-Message 模式、生产者—消费者模式、两阶段终止模式、Worker-Thread 模式和 Balking 模式都是分工问题的实现方式。 3、同步问题 在并发编程中同步指一个线程执行完自己的任务后以何种方式来通知其他的线程继续执行任务也可以将其理解为线程之间的协作同步强调的是执行的性能。 类比现实案例 可以在现实生活中找到与并发编程中的同步问题相似的案例。 例如张三、李四和王五共同开发一个项目张三是一名前端开发人员他需要等待李四的开发接口任务完成再开始渲染 页面而李四又需要等待王五的服务开发工作完成再写接口。 也就是说任务之间是存在依赖关系的前面的任务完成后才能执行后面的任务。 在现实生活中这种任务的同步更多的是靠人与人之间的交流和沟通来实现的。例如王五的服务开发任务完成了告诉李四李四马上开始执行开发接口任务。等李四的接口开发完成后再告诉张三张三马上调用李四开发的接口将返回的数据渲染到页面上。 在现实生活中张三、李四和王五的任务之间是有依赖关系的张三渲染页面的任务依赖李四开发接口的任务完成李四开发接口的任务依赖王五开发服务的任务完成。 并发编程中的同步 在并发编程领域同步机制指一个线程的任务执行完成后通知其他线程继续执行任务的方式并发编程同步简易模型。 在并发编程中多个线程之间的任务是有依赖关系的。 线程A 需要阻塞等待线程 B 执行完任务才能开始执行任务线程 B 需要阻塞等待线程 C 执行完任务才能开始执行任务。线程 C 执行完任务会唤醒线程 B 继续执行任务线程 B 执行完任务会唤醒线程 A 继续执行任务。 这种线程之间的同步机制可以使用如下的 if 伪代码来表示。 if(依赖的任务完成){ 执行当前任务 }else{ 继续等待依赖任务的执行 } 上述 if 伪代码所代表的含义是当依赖的任务完成时执行当前任务否则继续等待依 赖任务的执行。 在实际场景中往往需要及时判断出依赖的任务是否已经完成这时就可以使用 while 循 环来代替 if 判断 while 伪代码如下。 while(依赖的任务未完成){ 继续等待依赖任务的执行 } 执行当前任务 上述 while 伪代码所代表的含义是如果依赖的任务未完成则一直等待直到依赖的任务完成才执行当前任务。 在并发编程领域同步机制有一个非常经典的模型——生产者—消费者模型。如果队列已满则生产者线程需要等待如果队列不满则需要唤醒生产者线程如果队列为空则消费者线程需要等待如果队列不为空则需要唤醒消费者。 可以使用下面的伪代码来表示生产者—消费者模型。 生产者伪代码 while(队列已满){ 生产者线程等待 } 唤醒生产者 消费者伪代码 while(队列为空){ 消费者等待 } 唤醒消费者 在Java 中Semaphore、Lock、synchronized.、CountDownLatch、CyclicBarrier、Exchanger 和 Phaser 等工具类或框架实现了同步机制。 4、互斥问题 在并发编程中互斥问题一般指在同一时刻只允许一个线程访问临界区的共享资源。互斥强调的是多个线程执行任务时的正确性。 并发编程中的互斥 在并发编程中分工和同步强调的是任务的执行性能而互斥强调的则是执行任务的正确性也就是线程的安全问题。 如果在并发编程中多个线程同时进入临界区访问同一个共享变量则可能产生线程安全问题这是由线程的原子性、可见性和有序性问题导致的。 而在并发编程中解决原子性、可见性和有序性问题的核心方案就是线程之间的互斥。 例如可以使用JVM中提供的synchronized锁来实现多个线程之间的互斥使用synchronized锁的伪代码如下。 修饰方法 public synchronized void methodName(){ //省略具体方法 } 修饰代码块 public void methodName(){ synchronized(this){ //省略具体方法 }} public void methodName(){ synchronized(obj){ //省略具体方法 } } public void methodName(){ synchronized(ClassName.class){ //省略具体方法 } } 修饰静态方法 public synchronized static void staticMethodName(){ //省略具体方法 } 除了synchronized 锁Java 还提供了 ThreadLocal、CAS、原子类和以CopyOnWrite 开头的并发容器类、Lock 锁及读/写锁等它们都实现了线程的互斥机制。
http://www.hkea.cn/news/14299671/

相关文章:

  • 东乡网站建设百度广告推广价格
  • 网站界面 ui 设计答案网站建设公司顺义
  • 蒙城网站建设河南网站建设公司价格
  • 手机网站开发用什么框架好网站开发技术项目代码搜索
  • 网站建设嗟商文件灰色行业seo大神
  • 博物馆网站微信公众号建设方案常州建站费用
  • 做网站用c语言吗苏州专业网站建设设计公司排名
  • 禁止域名访问网站网站架构拓扑图
  • 模板之家网站苏州论坛
  • 土木在线推推蛙贴吧优化
  • 装修公司网站制作网站友链外链
  • 公司内部网站建设的意义莱芜聊城网站建设
  • 网站正在建设亚洲98建筑人才网
  • win7 asp网站发布网站建设服务器都有哪些
  • 做网站建设一条龙全包云科技网站建设
  • 模板网站有后台么班级app网站建设
  • 如何自做自己的网站优设网的吉祥物
  • 网站备案用座机租用网站建设什么是静态网页
  • 网站做成软件建筑设计参考网站
  • 前端开发做网站吗泰安网网站建设
  • 登封网站制作网站建设wordpress mysql nghix
  • 个体户做网站是怎么备案云南网站建设天度
  • 企业网站建设需要哪些软件哪个网站专题做的好
  • 做文案需要用到的网站wordpress主题高仿雷锋网
  • 公司名称 网站域名 关联中国域名注册
  • 昭通建网站代理网站备案收钱
  • html5移动网站开发实例乡土文化网站怎么做
  • 自己做网站都要什么网站后台密码忘记了怎么办 ftp进不去
  • 怎么制作视频网站高清世界街景地图如何退订
  • 建设英文网站费用做网站的版式会侵权吗