其他技术区
并发量 标签描述

并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互方式也不相同。这篇并发模型教程将会较深入地介绍目前(2015年,本文撰写时间)比较流行的几种并发模型。 并发模型与分布式系统之间的相似性 本文所描述的并发模型类似于分布式系统中使用的很多体系结构。在并发系统中线程之间可以相互通信。在分布式系统中进程之间也可以相互通信(进程有可能在不同的机器中)。线程和进程之间具有很多相似的特性。这也就是为什么很多并发模型通常类似于各种分布式系统架构。 当然,分布式系统在处理网络失效、远程主机或进程宕掉...

  TEZNKK3IfmPf   2023年11月14日   46   0   0 并发量

本月并发网组织翻译如果有其他优秀译文希望并发网组织翻译,欢迎通过评论告诉我们。为了鼓励和奖励译者翻译文章,并发网允许译者在文章末尾放赞赏。 如何领取 通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,建议在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,并发网是非盈利组织,没办法去跟进每一篇译文的进展,所以很多文章领取了没有翻译,会导致文章长时间没人翻译。 如何提交? 翻译完成之后请登录到,点击左上的“新建”按钮提交文章,会有编辑校对后进行发布。如下图: 编辑器使用方法如下: 校对完之后被评为A级会...

  TEZNKK3IfmPf   2023年11月15日   16   0   0 并发量

“你好,你能过来看看帮我解决一个奇怪的问题么。”就是这个技术支持案例使我想起写下这篇帖子。眼前的这个问题就是关于不同工具对于可用内存大小检测的差异。 其实就是一个工程师在调查一个应用程序的过高的内存使用情况时发现,尽管该程序已经被指定分配2G堆内存,但是JVM检测工具似乎并不能确定进程实际能用多少内存。例如jconsole显示可用堆内存为1,963M,然而jvisualvm却显示能用2,048M。所以到底哪个工具才是对的,为什么检测结果会出现差异呢? 这确实是个挺奇怪的问题,特别是当最常出现的几种解释理由都被排除后,看来JVM并没有耍一些明显的小花招: -Xmx和-Xms是相等的,因此检测结...

  TEZNKK3IfmPf   2023年11月14日   21   0   0 并发量

为了支持不断增长的性能需求衍生出一种专门的高扩展架构。换句话说,如果你的性能需求突然超过原有的软件+硬件的组合性能上限,你可以调整自己系统,通过硬件或者软件来支持新增的性能需求 扩展因子 线性扩展:当你扩展你的系统硬件配置,你希望性能的扩展幅度也是同样水平的扩展。例如你双倍增加你的硬件配置,你的系统性能也是双倍增长。 但是一般来说非常难达到线性扩展的水平,一般你扩展一倍的硬件配置,但是你的性能扩展无法达到一倍,例如你双倍增加你的硬件配置,你的性能增长不到双倍。 扩展硬件系统配置,增加的额外的工作量多少,需要参考你系统的因素,扩展因素又依靠你的系统扩展组成 垂直扩容和水平扩容 当下非常流行的两...

  TEZNKK3IfmPf   2023年11月15日   47   0   0 并发量

学技术并发网始终建议同学们阅读原版官方文档,所以并发网每月都会组织大家翻译各种官方技术文档。之前并发网翻译过《Netty5用户指南》,但是还是有很多netty文档没有翻译,所以3月份并发网组织翻译《Netty5用户指南》,欢迎有兴趣的同学参与。 如何领取 通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。这个领取完成之后,建议在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。 注意:领取文章前请谨慎,很多同学领取完之后又不提交译文,这给组织方带来很大困扰,导致很多文章至今无人翻译。 如何提交? 翻译完成之后请登录到并发网提交成待...

  TEZNKK3IfmPf   2023年11月14日   17   0   0 并发量

原文链接作者: Jakob Jenkov 译者: 李璟 Java IO流是既可以从中读取,也可以写入到其中的数据流。正如这个系列教程之前提到过的,流通常会与数据源、数据流向目的地相关联,比如文件、网络等等。 流和数组不一样,不能通过索引读写数据。在流中,你也不能像数组那样前后移动读取数据,除非使用RandomAccessFile 处理文件。流仅仅只是一个连续的数据流。 某些类似PushbackInputStream 流的实现允许你将数据重新推回到流中,以便重新读取。然而你只能把有限的数据推回流中,并且你不能像操作数组那样随...

  TEZNKK3IfmPf   2023年11月15日   13   0   0 并发量java在线多线程同步

本指南会对nginx进行基本的介绍并描述一些它可以完成的简单任务。如果你还没有安装nginx,请参阅本指南不仅描述了怎么启动和停止nginx,怎么重新加载nginx的配置,还解释了nginx配置文件的结构以及如何设置nginx提供静态资源,还会教你如何将nginx配置为一个代理服务器,以及如何将它和FastCGI应用连接。 nginx有一个主进程和其它的工作进程。主进程的主要作用是读取解析配置,以及维护工作进程。实际处理请求的是工作线程。nginx采用基于事件模型和依赖于操作系统的机制来高效通过工作进程分发请求。工作进程的数量在配置文件中定义,它可以通过给定的配置固定,也可以通过CPU内核的...

  TEZNKK3IfmPf   2023年11月15日   13   0   0 并发量编程语言java在线

作者: Jakob Jenkov 译者: 李璟 本小节会简要概括Java IO中的PushbackReader,LineNumberReader,StreamTokenizer,PrintWriter,StringReader,StringWriter。 PushbackReader 原文链接 PushbackReader与PushbackInputStream类似,唯一不同的是PushbackReader处理字符,PushbackInputStream处理字节。代码如下: PushbackReader reader =...

  TEZNKK3IfmPf   2023年11月15日   18   0   0 并发量编程语言

每日的系统操作记录 今日的交易网络只不过是在网络系统中商业记录上做了轻微的版本更新,商业流中的系统之间彼此发生者交易,但是又各自保留者自己独有的交易记录。无论是在16世纪的佛兰德挂毯,还是今天的证券,每次出售时都必须确定其出处,以确保出售物品的企业拥有验证其所有权的所有权链。 剩下的看起来就像下面这样的网络交织。 很早之前通过石板或者文件来记录这种流程,现在已经被硬盘和云平台所替代,但是基础的结构是一样的。一个管理每一个网络中参与者身份标识的系统并不存在,因为建立这种身份标识系统需要耗费大量的时间去清理证券的交易记录(世界的容量超过了数万亿的信息),交易必须被自动的标识并自动执行。另外,在巨...

  TEZNKK3IfmPf   2023年11月14日   47   0   0 并发量编程语言java在线

此构建是使用configure命令来进行配置的。它定义了系统的各个层面,包含了nginx在连接处理中允许使用的方法。最后它创建了一个Makefile文件。configure命令支持以下参数: –prefix=path–指定保存服务器文件的目录。该目录也被用在所有被configure(除了源码库的路径)设置的相对路径和nginx.conf配置文件中。它默认被设置为/usr/local/nginx目录。 –sbin-path=path–设置nginx可执行文件的名称。这个名称只在安装过程中使用。该文件默认被命名为/prefix/sbin/nginx。 –conf-path=path–设置ngi...

  TEZNKK3IfmPf   2023年11月15日   41   0   0 并发量多线程同步

大多数并发垃圾收集器 大多数并发垃圾收集器对应用程序并发地执行部分工作,正如他们的名称一样。JAVAHotSpotVM包含两个最常使用的并发垃圾收集器: ConcurrentMarkSweep(CMS)垃圾收集器:此垃圾收集器适用于那些希望缩短垃圾收集暂停时间并且能够与垃圾收集共享处理器资源的应用程序。 Garbage-First(G1)垃圾收集器:这个是服务器级别的垃圾收集器,应用于具有大量内存的多处理器计算机。他在实现垃圾收集器暂停时间目标的同时达到一个尽可能高的吞吐量。 大多数并发垃圾收集器的开销 大多数垃圾收集器交易处理器资源以缩短主要收集暂停时间(否则应用程序将使用这些资源)。...

  TEZNKK3IfmPf   2023年11月15日   47   0   0 并发量应用程序

CountDownLatch 相比ReentranceLock,CountDownLatch的流程还是相对比较简单的,CountDownLatch也是基于AQS,它是AQS的共享功能的一个实现。下面从源代码的实现上详解CountDownLatch。 1、CountDownLatch构造 public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count <&nbsp...

  TEZNKK3IfmPf   2023年11月15日   16   0   0 并发量编程语言java在线

LongAdder简单介绍 LongAdder类似于AtomicLong是原子性递增或者递减类,AtomicLong已经通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足,因为在非常高的并发请求下AtomicLong的性能不能让他们接受,虽然AtomicLong使用CAS但是CAS失败后还是通过无限循环的自旋锁不断尝试的     public final long incrementAndGet() {     &nb...

  TEZNKK3IfmPf   2023年11月15日   16   0   0 并发量多线程同步

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。人工智能已经是越来越火的技术 如何领取 通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,建议在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,并发网是非盈利组织,没办法去跟进每一篇译文的进展,所以很多文章领取了没有翻译,会导致文章长时间没人翻译。 如何提交? 翻译完成之后请登录到点击左上的“新建”按钮提交文章,会有编辑校对后进行发布。如下图: 编辑器使用方法如下: 校对完之后被评为A级会升...

  TEZNKK3IfmPf   2023年11月15日   21   0   0 并发量

TERM,INT 快速停止 QUIT 优雅地停止 HUP 更改配置,跟上时区的变化(仅适用于FreeBSD和Linux),使用新配置启动新工作进程,优雅地关闭旧工作进程 USR1 重新打开日志文件 USR2 升级可执行文件 WINCH 优雅地关闭工作进程 虽然不是必需的,但是也可以用信号来控制每个独立的工作进程。支持的信号有: TERM,INT 快速停止 QUIT 优雅地停止 USR1 重新打开日志文件 WINCH 异常终止调试(需要启用debug_points) 改变配置 要让nginx重新读取配置文件,应该向主进程发送一个HU...

  TEZNKK3IfmPf   2023年11月15日   13   0   0 并发量编程语言java在线

原文链接 译者:lijunshu Netty有一个模块叫’netty-microbench’,我们可以用他来执行一系列的微型基准测试。Netty-microbench是基于OpenJDKJMH构件的(HotSpot的推荐基准测试方案)。当你开始netty基准测试时,你不需要额外的依赖。 运行基准测试 你可以通过maven命令行或者直接从IDE开始你的基准测试,如果以默认设置开始跑测试,你可以使用命令行mvn-DskipTests=false。我们设置skipTests=false 是因为我们不想以单元测试的方式去运行这些基准测试。 如果没有问题,你将为看到JMH开始war...

  TEZNKK3IfmPf   2023年11月15日   21   0   0 并发量

你好!我们这里总共向您提供三种openaddression的方法,分别为linearprobing、quadraticprobing和doublehashing。 LinearProbing Linearprobing是计算机程序解决散列表冲突时所采取的一种策略。散列表这种数据结构用于保存键值对,并且能通过给出的键来查找表中对应的值。Linearprobing这种策略是在1954年由GeneAmdahl,ElaineM.McGraw,和ArthurSamuel所发明,并且最早于1963年由DonaldKnuth对其进行分析。 假设A是哈希表的一个容量N为15的数组; 将Keys(5、9、1...

  TEZNKK3IfmPf   2023年11月15日   15   0   0 并发量