此刻,在南京参加一个封闭开发,闲来无事也是因为工作需要看Java tutorial.突然想把它翻译下来,仔细想想找出来几个理由:1 最近比较浮躁,什么技术都玩,总是不能深入,希望通过翻译技术文章让自己沉下来。2 还不算难翻译,顺便提高下英语水准和码字速度。本译文纯属笔者练习之用(大家就容许这位“笔者”得瑟一回呗),希望不会误导大家,文中凡是笔者以为重要的或可能翻译有误的名词都括弧对应英文。废话少说,直接上文。
原文地址:http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html
课程: 并发
计算机用户理所当然的认为他们的系统能够一次做很多事情。他们以为他们可以在其他应用下载文件,管理打印队列和音频流时,继续使用文档处理程序工作。即使是一个程序他们也期望一次能做不止一件事情。譬如说,音频流软件必须同时从网上下载音频,压缩它,重放,刷新显示。即使文字处理软件也应该时刻对键盘和鼠标事件作出响应,不管它是否正在忙于刷新显示或变换格式。我们把这些可以做很多事情的软件叫作并发软件(concurrent software)。
Java 框架从Java语言到Java类库都完全支持了并发编程。从5.0开始,Java框架已经包含了高级别的并发编程接口。本课程介绍Java框架的基础并发支持,并总结一些java.util.concurrent包中的高级别并发编程接口。
进程和线程
在并发编程中,有两种基本的执行方式(two basic units of execution):进程和线程。在java中,并发编程大多与线程有关,然而进程也很重要。
正常的计算机系统都有很多活动的进程和线程。即使在单处理器系统中亦如此,因此在任一时刻实际上只有一个线程在运行。通过一个叫作时间分片的操作系统特性,单处理器计算机的计算时间在几个进程和线程之间共享。
这个特性在处理多个进程和线程的多核系统中变得越来越普遍,从而大大提高了操作系统并发执行进程和线程的能力(capacity)。但是并发也可以存在于没有多个进程或多个处理器的简单系统中。
进程
一个进程拥有一个独立(self-contained)的执行环境。进程都拥有一个完整的,私有的运行资源集合(private set of runtime resources);尤其是,进程拥有一个自己的内存空间(memory space)。
进程经常被等同于是程序或软件。然而,用户眼中的软件实际上可能是一个互相合作的进程集合。为了帮助(facilitate)多个进程间通信,大多数操作系统支持进程间通信(IPC Inter Process Communication)资源,譬如管道(pipes)和套接字(sockets)。IPC不仅被用来支持同一操作系统上进程间的通信,也用在不同操作系统之间。
大多Java虚拟机的实现是单进程的。一个Java 应用程序可以使用ProcessBuilder对象创建更多的进程。多进程应用(Multiprocess application)超出了本课程的范围。
线程
线程有时也称作轻量(lightweight)进程。进程和线程都提供一个执行环境,但创建一个线程需要的资源比进程更少。
多个线程存在于单个进程中,也就是说每个进程至少有一个线程。线程共享进程的资源包括内存和已打开的文件,这样提高了效率,同时也带来了潜在的交互问题(potentially problematic)。
多线程(Multithreaded)运行是Java框架的基本特性。如果你去数”system”用户的线程,譬如用作内存管理、信号处理的线程,你会发现每个应用都有至少一个线程-或多个线程。但是从程序员的角度看,你只启动了一个叫作主线程(the main thread)的线程,主线程可创建更多的线程,在下一小节里我们将做详述。
分享到:
相关推荐
Cpp_Concurrency_In_Action(本书是基于C++11新标准的并发和多线程编程深度指南。),非扫描版
Concurrency_In_Action,值得任何一位想要提升并发编程功底的C++程序员。
Python Concurrency with asyncio
oslo.concurrency 是通过锁定机制和运行外部进程来安全运行多线程、多进程应用的工具。它包括以下 API:oslo_concurrency.fixture.lockutilsoslo_concurrency.lockutilsoslo_concurrency.optsoslo_concurrency....
This practical guide thoroughly explores communication, concurrency,and multithreading. Known for its comprehensive and lucid explanations of complicated topics such as signals and concurrency, the ...
C++ Concurrency in Action C++ Concurrency in Action C++ Concurrency in Action
介绍java多线程的超经典的书,不需要多介绍了。这是完整版。压缩包内包含两个版本的pdf,都是英文版。建议看英文版,因此中文版翻译得超烂。与此同时,压缩包内还有一个java多线程总结.ppt!
C++ Concurrency in Action中文 PDF清晰版 本书是并发和多线程机制指导书籍(基于C++11标准)。 从最基本的 std::thread std::mutex 和 std::async 的使用, 到 复杂的原子操作和内存模型。
java_concurrency_in_practice_source java多线程 java多线程 java多线程
This book covers the most important and useful mechanisms included in version 9 of the Java concurrency API, so you will be able to use them directly in your applications. The mechanisms are as ...
Akka Concurrency
高清彩版 JavaScript Concurrency
C++ Concurrency in Action 英文第二版 经典的C++并行并发编程教程
七周七并发模型 Seven Concurrency Models in Seven Weeks 中文版 带书签完整版
HIGHLIGHT C++ Concurrency in Action is the first book to market to show how to take advantage of the new C++ Standard and how to write robust multi-threaded applications in C++. DESCRIPTION With the ...
Java Concurrency in practice
Java Threads and the Concurrency Utilities 初学者学习Java多线程的首选
java concurrency in practice 经典的多线程编程书籍,英文版