Java并发
文章平均质量分 86
java的并发内容
lzc_23
这个作者很懒,什么都没留下…
展开
-
JAVA并发和多线程教程之首页
本文翻译自http://tutorials.jenkov.com/java-concurrency/index.html,机翻加人工校正,仅供学习交流。JAVA并发和多线程教程 Java并发是一个在Java平台上涵盖了多线程、并发性和并行性的术语,包括了java的并发工具、问题和解决方法。本篇教程包括Java中的多线程核心概念、并发构造、以及并发所带来的问题、消耗和优点。java并发教程视频 https://www.youtube.com/playlist?list=PLL8woMHwr36EDx翻译 2021-04-25 17:10:27 · 161 阅读 · 0 评论 -
多线程的好处
本文翻译自http://tutorials.jenkov.com/java-concurrency/benefits.html,机翻加人工校正,仅供学习交流。多线程的好处多线程最大的好处就是:更好地利用CPU简单的程序设计程序更多的响应多任务下CPU资源分配公平性更好地利用CPU假设有一个从本地文件系统读取并处理文件的程序,从磁盘读取一个文件需要花费5秒,处理文件花费2秒。处理两个文件的花费如下 5 seconds reading file A 2 seconds process翻译 2021-04-25 18:44:28 · 2281 阅读 · 0 评论 -
多线程的代价
本文翻译自http://tutorials.jenkov.com/java-concurrency/costs.html,机翻加人工校正,仅供学习交流。多线程的代价从单线程程序转向多线程程序不仅仅提供优点,它也会有一些代价。不要因为会使用多线程就是把一个应用程序写成多线程程序,而是有根据地认为这样做的好处要大于成本。当有疑问时,我们应该尝试测量应用程序的性能和响应能力,而不只是去靠猜测。更复杂的设计虽然多线程应用程序的某些部分比单线程应用程序简单,但是其他部分更为复杂。多线程访问共享数据的代码执行需翻译 2021-04-26 10:15:39 · 127 阅读 · 0 评论 -
线程模型
本文翻译自http://tutorials.jenkov.com/java-concurrency/concurrency-models.html,机翻加人工校正,仅供学习交流。线程模型并发系统可以使用不同的并发模型实现。并发模型详细说明系统中的线程如何协作完成给它们的任务。不同的并发模型以不同的方式分割任务,线程可能以不同的方式进行交流和合作。这个并发模型教程会深入讲解在本文撰写时(2015 - 2019)使用地最受欢迎的并发模型。并发模型和分布式系统的相似性本文中描述的并发模型类似于用于分布式系翻译 2021-04-26 17:30:18 · 140 阅读 · 0 评论 -
同一线程——单线程的横向扩展
同一线程同一线程是一种并发模型,是将单线程系统扩展为N个单线程系统。结果是N个单线程系统并行运行。同一线程系统不是一个纯粹的单线程系统,因为它包含多个线程。但是——每个线程都像单线程系统一样运行,因此,术语是同一线程的,而不是单线程的。为什么单线程的系统您可能想知道为什么现在会有人设计单线程系统。单线程系统之所以流行,是因为它们的并发模型比多线程系统简单得多。单线程系统不与其他线程共享任何状态(对象/数据)。这使得单线程使用非并发数据结构,并更好地利用CPU和CPU缓存。不幸的是,单线程系统并没有翻译 2021-04-27 13:49:36 · 223 阅读 · 0 评论 -
并发与并行
本文翻译自http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html,机翻加人工校正,仅供学习交流。并发与并行并发和并行通常用于多线程程序。乍一看,并发性和并行性似乎是指相同的概念,然而,并发和并行实际上有不同的含义。在这个并发与并行的教程中,我将解释这些概念的含义。事先说明,在本文中,我将讨论单个应用程序(单个进程)中的并发性和并行性,不在多个应用程序、过程或计算机之间。并行vs并行教程视频如果你更喜欢翻译 2021-04-27 15:42:24 · 621 阅读 · 1 评论 -
单线程并发
本文翻译自http://tutorials.jenkov.com/java-concurrency/singlethreaded-concurrency.html,机翻加人工校正,仅供学习交流。单线程并发单线程并发意味着从一个线程内似乎同时在多个任务上取得进展。从表面上看,单线程并发听起来有点矛盾。在以前多线程体系结构中,多个任务将被分配到多个线程中,以便并发执行。因此,不同任务之间的切换是通过操作系统和CPU之间的不同切换来完成的。实际上,一个线程可以同时在多个任务上取得进展。在这个单线程并发性教程中翻译 2021-04-29 22:44:01 · 2037 阅读 · 0 评论 -
创建和启动Java线程
本文翻译自http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html,机翻加人工校正,仅供学习交流。创建和启动Java线程Java线程就像一个虚拟CPU,可以在Java应用程序内部执行Java代码。当一个Java应用程序启动时,它的main()方法由主线程执行,Java 虚拟机会创建一个特殊的线程来运行您的应用程序。在主线程中,您的应用程序可以创建并启动多个并行执行应用程序代码的部分的线程。Java线程与翻译 2021-04-30 11:39:06 · 227 阅读 · 0 评论 -
竞态条件和临界区
本文翻译自http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html,机翻加人工校正,仅供学习交流。竞态条件和临界区竞态条件是可能发生在临界区段内的并发问题。临界区是在多个线程执行的情况下,线程的执行顺序会对临界区访问的结果产生影响的一段代码。多个线程执行一个临界区的结果多个线程执行一个临界段的结果可能不同,这取决于线程的顺序执行,临界区包含竞态条件。竞态条件这个术语就来源于线程在临界区翻译 2021-05-11 16:44:58 · 325 阅读 · 1 评论 -
线程安全和共享资源
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicreferencearray.html,人工翻译,仅供学习交流。线程安全和共享资源多线程调用安全的代码被称为线程安全。如果代码的部分是线程安全的,则说明不含竞态条件。只有在多个线程更新共享资源时才会出现竞争条件。因此,了解Java线程在执行时共享哪些资源非常重要。本地变量本地变量存储在每个线程的自己栈中,意味着线程不共享本地变量。下面是一个线程安全本地变量的例子:`public翻译 2021-05-12 14:56:46 · 135 阅读 · 0 评论 -
线程安全及不可变性
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicreferencearray.html,人工翻译,仅供学习交流。线程安全及不可变性只有当多个线程访问同一资源时才会出现竞争条件,一个或多个线程写入资源。多个线程读取相同的资源竞态条件不会发生。我们可以通过使共享对象不可变确保线程之间共享的对象不会被任何线程,更新因此线程是安全的。下面是一个例子:public class ImmutableValue{ private int v翻译 2021-05-13 10:13:19 · 111 阅读 · 0 评论 -
Java内存模型
本文翻译自http://tutorials.jenkov.com/java-concurrency/java-memory-model.html,人工翻译,仅供学习交流。Java内存模型Java内存模型指定了Java虚拟机如何与计算机的内存(RAM)一起工作。Java虚拟机是整个计算机的模型所以,这个模型自然包含了一个内存模型——也就是Java内存模型。理解Java内存模型非常重要,如果您想设计行为正确的并发程序。Java内存模型指定不同的线程如何以及何时可以看到其他线程写入共享变量的值,以及在必要时如翻译 2021-05-13 14:40:24 · 125 阅读 · 0 评论 -
Java happens-before-guarantee规则
本文翻译自http://tutorials.jenkov.com/java-concurrency/java-happens-before-guarantee.html,人工翻译,仅供学习交流。Java happens-before规则Java happens-before是一组规则,它决定了如何允许Java VM和CPU重新排列指令以提高性能。当一个变量值与主存同步或从主存同步时, happens before guarantee使得线程可以依赖同时同步的其他变量。Java happens befor翻译 2021-05-17 14:31:19 · 233 阅读 · 0 评论