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

相亲网站怎么建设ftp怎么重新上传网站

相亲网站怎么建设,ftp怎么重新上传网站,微信自动加人软件,电商设计平台java名 java线程通信主要通过共享对字段和对象的访问来发生。 尽管这种通信方式非常高效#xff0c;但它易于出现诸如线程干扰和内存一致性之类的错误。 同步是一种有助于防止此类错误的工具。 但是#xff0c;同步不是免费提供的#xff0c;并且在访问当前由另一个线程持有… java名 java 线程通信主要通过共享对字段和对象的访问来发生。 尽管这种通信方式非常高效但它易于出现诸如线程干扰和内存一致性之类的错误。 同步是一种有助于防止此类错误的工具。 但是同步不是免费提供的并且在访问当前由另一个线程持有的锁或对象时会引入延迟。 等待的线程不能使用该对象直到另一个线程释放该对象的锁。 这种情况称为线程争用。 它还可能导致死锁和活锁。 在本文中我们将探讨Java提供的用于处理线程同步的不同选项。 同步要点 Java提供了一系列机制来处理基本线程同步和协调。 它支持通过同步方法和同步语句进行细粒度的对象访问同步。 基本线程协调可以通过受保护的块来完成。 所有提到的机制都是围绕获取和释放对象的固有锁定而构建的。 内在锁 每个Java对象都有一个关联的固有锁。 需要对对象的字段进行独占访问的线程必须在访问对象之前获取对象的锁然后在完成后释放固有的锁。 其他尝试访问该对象的线程将阻塞直到持有锁的线程将其释放为止。 同步方法 当线程调用同步方法时 它获取该方法对象的内在锁 并在方法返回时释放它。 即使该方法由于未捕获的异常而返回也将释放该锁定。 如果以静态方法完成则线程将获取与该类关联的类对象的锁。 同步语句 提供更细粒度的同步机制。 同步语句必须指定提供内部锁的对象。 在分离的锁对象上进行同步可以提供字段同步而无需强制方法调用之间进行同步。 守卫的块 如前所述受保护的块为线程协调提供了支持。 受保护的块是每个Java对象的一部分可以使用wait notify和notifyAll方法构造。 wait方法挂起当前线程。 当线程调用wait时它必须拥有对象的固有锁这就是为什么wait调用通常包装在同步方法或语句中的原因。 调用wait方法将挂起线程执行并释放锁。 在某个时候另一个线程将获取对象的固有锁并调用notifyAll来通知所有线程等待发生重要事件。 在第二个线程释放了锁之后等待的线程将重新获取该锁并通过从等待调用中返回来恢复执行。 Notify唤醒单个线程。 无法指定唤醒的具体线程因此仅在我们不关心哪个线程被唤醒时才有用。 Java同步器 Java还提供了五个用于通用特殊用途同步的类。 CountDownLatch CountDownLatch类允许一个或多个线程等待直到其他线程中的一组操作完成。 它用计数编号初始化。 await方法将阻塞直到计数达到零为止。 countDown方法减少计数。 当await方法返回时将释放所有等待线程并且随后的await调用将立即返回。 计数无法重置。 信号 信号量用于限制线程对特定资源的访问。 初始化具有许多许可证。 acquire方法将阻塞直到获得许可证并获得许可为止。 release方法添加许可释放阻止获取者。 请注意对release的调用不必与调用Acquisition的线程相同。 信号量可以是公平的也可以是不公平的 。 如果公平则线程以FIFO方式获取许可。 尽管起初它看上去与CountDownLatch类似但其目的却完全不同。 循环屏障 CyclicBarrier建立在各方概念的周围。 它允许线程互相等待以到达公共的障碍点。 await方法将阻塞直到各方到达为止。 它的行为与CountDownLatch的逆过程相同。 N等待之后它继续。 它支持每个障碍点运行一次的可选可运行对象。 在最后一个聚会到达之后但在释放之前。 它通常用于更新线程之间的共享状态。 它是循环的因为它可以在线程释放后重用 。 交换者 Exchanger是两个线程可以交换信息的同步点。 线程将阻塞直到其对方显示其信息为止。 双方都发生相同的行为。 移相器 Phaser是一个可重用的屏障类似于CountDownLatch和CyclirBarrier 但更加灵活。 在Phaser中创建时注册方的数量不是固定的。 双方可以在通过任何注册时register或bulkRegister方法。 双方可以在抵达时注销arriveAndDeregister 。 它提供了几种同步方法。 arriveAndAwaitAdvance方法的行为与CycleBarrier await方法的行为相同。 arrive和arrive并arriveAndDeregister记录到达但不要阻塞。 awaitAdvance阻塞直到各方到达为止。 它可以终止 强制所有同步方法返回。 可以通过forceTermination方法强制forceTermination 。 它还提供了监视其状态的支持。 值得注意的是同步方法只能由注册方调用而状态可以由任何调用者监视。 监视方法包括getRegisteredParties和getArrivedParties等。 结论 多线程绝对不是一个简单的问题但是使用某些语言提供的工具可以更轻松地解决多线程问题。 就个人而言我不需要每天使用所有工具但是我认为有必要知道它们的存在以及如何提供帮助。 翻译自: https://www.javacodegeeks.com/2016/08/the-java-syncrhonisers.htmljava名 java
http://www.pierceye.com/news/805048/

相关文章:

  • 网站搭建平台源码做健身网站开题报告
  • 大芬网站建设樟树网站开发
  • 北京通州个人网站建设哈尔滨建设工程招投标办公室
  • 怎样开个人网站如何做百度免费推广
  • 深圳成品网站超市佛山网站建设机构
  • 江苏 网站建设第一次做网站做后感
  • wordpress翻译公司网站没事网站建设项目规划书
  • 东莞建设年审网站我的世界充钱网站怎么做
  • 太原网站排名系统电子商务市场营销
  • 社区网站开发进度表2018年做网站还能
  • 论企业网站建设的必要性内网网站搭建设
  • 网站建设怎么翻译如何建立自己的网站
  • 2345网址大全热门seo推广排名稳定
  • 网站建设工作有底薪吗360优化大师
  • 门户网站微信服务号建设大型网站建设优化排名
  • 贵州省冶金建设有限公司网站wordpress end_lvl
  • 网站建设的工作职责是什么网站后台显示连接已重置
  • 俱乐部手机网站模板微信公众号个人可以做网站么
  • 简述一个网站开发流程软件下载网站搭建
  • 超级营销型网站模板建湖人才网官网登录
  • 建设网站都需要什么万网二手已备案域名
  • 网站建设运营维护合同快捷建站专家
  • 中山建设网站公司软件工程开发
  • 网站备案logo韩国展厅设计网站
  • 网站建设沧州做网站导航能赚钱吗
  • 自己怎么创建免费网站wordpress使用插件
  • 做一个个人主页的网站怎么做商城小程序模板
  • 网站站内链接怎么做wordpress文章样式插件
  • 网站大全浏览器济南免费网站建设优化
  • 招聘网站入职分析表怎么做网站关键字挖掘