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

站长工具在线平台网站标签设置

站长工具在线平台,网站标签设置,百度服务电话6988,深圳华强北二手手机目录 1.上下文的切换 1.1 什么是上下文切换 2. 并发编程的死锁问题 2.1 死锁产生的原因 2.2 避免死锁的方法 3.资源限制的挑战3.1 什么是资源限制 并发编程的目的是为了让程序更快#xff0c;大家都知道并不是开启的线程越多越快#xff0c;因为开启的线程越多随即面临…目录 1.上下文的切换 1.1 什么是上下文切换 2. 并发编程的死锁问题 2.1 死锁产生的原因 2.2 避免死锁的方法 3.资源限制的挑战3.1 什么是资源限制 并发编程的目的是为了让程序更快大家都知道并不是开启的线程越多越快因为开启的线程越多随即面临的挑战也越多比如上下文的切换、死锁问题、以及硬件和软件资源的限制问题。 1.上下文的切换 1.1 什么是上下文切换 学习操作系统的时候都了解到单核处理器也支持多线程执行代码CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间因为时间片非常短所以CPU通过不停地切换线程执行让我们感觉多个线程是同时执行的时间片一般是几十毫秒(ms)。 CPU通过时间片分配算法来循环执行任务当前任务执行一个时间片后会切换到下一个任务。但是在切换前会保存上一个任务的状态以便下次切换回这个任务时可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。 1.2   如何减少上下文切换 减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。 1. 无锁并发编程。多线程竞争锁时会引起上下文切换所以多线程处理数据时可以用一些办法来避免使用锁如将数据的ID按照Hash算法取模分段不同的线程处理不同段的数据。 2.CAS算法。Java的 Atomic包使用CAS算法来更新数据而不需要加锁。 3.使用最少线程。避免创建不需要的线程比如任务很少但是创建了很多线程来处理这样会造成大量线程都处于等待状态。 4.协程:在单线程里实现多任务的调度并在单线程里维持多个任务间的切换 2. 并发编程的死锁问题 2.1 死锁产生的原因 资源竞争 多个线程需要使用相同的资源并且这些资源只能被一个线程一次性占用。如果一个线程获取了资源A另一个线程获取了资源B并且两个线程都在等待对方的资源就会发生死锁。 资源请求和保持 一个线程已经持有一个资源并且在等待获取另一个资源时不释放已经持有的资源。 资源不可抢占 资源不能被强制从一个线程中抢占。只有线程自己才可以主动释放已持有的资源。 循环等待 存在一个线程循环等待资源的情况例如线程A等待线程B持有的资源而线程B又等待线程A持有的资源。 2.2 避免死锁的方法 避免嵌套锁一个线程获取多个锁 尽量避免一个线程在持有一个锁的同时再去请求另一个锁。可以通过减少锁的使用来避免死锁。 使用超时 在获取锁的时候设置超时如果超过一定时间没有获取到锁就放弃请求该锁。这样可以避免线程无限期地等待下去。 if (lock.tryLock(10, TimeUnit.SECONDS)) {try {// critical section} finally {lock.unlock();} } else {// perform alternative action }3.尽量缩短锁的持有时间尽量缩短持有锁的时间只在必要的地方加锁减少在锁内执行的操作 3.资源限制的挑战 3.1 什么是资源限制 资源限制是指在进行并发编程时程序的执行速度受限于计算机硬件资源或软件资源例如服务器的带宽只有 2Mbs某个资源的下载速度是1Mb/s每秒系统启动10个线程下载资源下载速度不会变成10Mb/s所以在进行并发编程时要考虑这些资源的限制。硬件资源限制有带宽的上传/下载速度、硬盘读写速度和CPU的处理速度。软件资源限制有数据库的连接数和socket 连接数等。 3.2 资源限制引发的问题 在并发编程中将代码执行速度加快的原则是将代码中串行执行的部分变成并发执行但是如果将某段串行的代码并发执行因为受限于资源仍然在串行执行这时候程序不仅不会加快执行反而会更慢因为增加了上下文切换和资源调度的时间。例如之前看到-段程序使用多线程在办公网并发地下载和处理数据时导致CPU利用率达到100%几个小时都不能运行完成任务后来修改成单线程一个小时就执行完成了。 强烈建议如果并发程序写的不严谨出现问题定位起来比较耗时和棘手java开发工程师尽量还是多使用JDK并发包提供的并发容器和工具类来解决并发问题。比较jdk大叔的水平可是经历 了历史的检验
http://www.w-s-a.com/news/986772/

相关文章:

  • 网站怎么做现场直播视频成都科技网站建设找
  • 个人网页设计步骤网站没有内容 能做优化吗
  • 专业网站建设公司招聘网站排行榜
  • 网站建设规范方法企业解决方案架构
  • ae做网站导航wordpress门户
  • 重庆市网站备案材料云南做网站
  • 网页设计模板网站免费珠海视窗网
  • 茂名模板建站定制WordPress注册不提示
  • 陕西营销型手机网站建设深圳制作网站服务
  • 受欢迎的锦州网站建设Wordpress 图片左右滑动
  • 湖南优化网站建设线上网站建设需求
  • 建什么类型的网站访问量比较大哪些外包公司比较好
  • php网站地图外贸建站哪家强外贸网站怎么做
  • 宁波五金网站建设中国建筑网官网投诉查询
  • 哪个网站注册域名便宜免费流程图制作网站
  • 潍坊做网站南宁网站seo优化公司
  • 网站建设的基本技术步骤无网站营销
  • 我国旅游网站的建设网站开发 混合式 数据库
  • 淘宝客网站域名家居网站开发项目计划书
  • 网站打不开显示asp苏州注册公司需要多少钱
  • 凡科建站登录官网wordpress主题有什么用
  • 西安双语网站建设怎么做网页动图
  • 宝安自适应网站建设无锡新区企业网站推广
  • 肇庆建设局网站cpanel 安装wordpress
  • 长春启做网站多少怎样换wordpress域名
  • 山西网站建设情况汇总vs2010 c 建设网站
  • 网站推广策划书 精品深圳市住建局和建设局官网
  • 住房和城乡建设部干部学院网站一般做公司网站需要哪几点
  • 网站制作流程详解(学做网站第一步)免费个人网站模版ps
  • 狮山网站建设公司微信平台软件开发