Concurrent Programming: The Java Programming Language

Concurrent Programming: The Java Programming Language
复制标题

并发编程:Java 编程语言

DOI:
10.12694/scpe.v4i2.230
复制
发表时间:
2001
期刊:
Scalable Computing : Practice and Experience
影响因子:
--
通讯作者:
G. Gagne
G. Gagne
中科院分区:
--
文献类型:
--
作者:
G. Gagne

文献摘要

被引文献

相似文献

史蒂芬·J·哈特利牛津大学出版社,纽约,1998年,第260页。ISBN0-19-511315-2,$ 45.00并发编程是对Java多线程编程的彻底处理,用于独立和分布式环境对于同时或并行编程课程的学生,该文本也是开发多线程程序或小程序的实践专业人员的绝佳参考。然后,他为读者提供了扎实的背景,以撰写多线程,并在编写并发程序时提出了问题 - 即种族条件,相互排斥和Hartley。不需要使用共同的过程和线程机制,一旦为编写并发程序奠定了基础,Hartley采取了与大多数Java参考的不同方法。 ),他首先研究了基于信号的解决方案,例如有限的逃避者,读者 - 读者和餐饮哲学家。并发使读者都可以了解Java线程如何同步,以及如何使用基本同步机制来构建更多的抽象工具,例如信号量。 (RMI)尽管有一个涵盖RMI的部分。包括其易于阅读的内容,在章节结尾处的几个示例,类似于XTANGO提供算法动画的包装以及作者提供的支持网站(请参见www.mcs.drexel.edu/~shartley/~shartley/concprogjava/index。html )包括Java在多层应用程序的服务器方面更加主导,编写线程安全应用程序更为重要盐湖城盐湖城犹他州
Stephen J. Hartley Oxford University Press, New York, 1998, 260 pp. ISBN 0-19-511315-2, $45.00 Concurrent Programming  is a thorough treatment of Java multi-threaded programming for both a stand-alone and distributed environment. Designed mostly for students in concurrent or parallel programming classes, the text is also an excellent reference for the practicing professional developing multi-threaded programs or applets. Hartley first provides a complete explanation of the features of Java necessary to write concurrent programs, including topics such as exception handling, interfaces, and packages. He then gives the reader a solid background to write multi-threaded programs and also presents the problems introduced when writing concurrent programs—namely race conditions, mutual exclusion, and deadlock. Hartley also provides several software solutions that do not require the use of common process and thread mechanisms. Once the groundwork is laid for writing concurrent programs, Hartley then takes a different approach than most Java references. Rather than presenting how Java handles mutual exclusion with the  synchronized  keyword (although it is covered later), he first looks at semaphore-based solutions to classic concurrent problems such as bounded-buffer, readers-writers, and the dining philosophers. Hartley also uses the same approach to develop Java classes for monitors and message passing. This unique approach to introducing concurrency allows the readers to both understand how Java threads are synchronized and how the basic synchronization mechanism can be used to construct more abstract tools such as semaphores. If there is a shortcoming with the text it is with the lack of sufficient coverage of remote method invocation (RMI), although there is a section covering RMI. This is quite understandable as RMI is a fairly recent phenomenon with the Java community. Also, the classes that Hartley provides could easily implement RMI rather than sockets to handle communication. The strengths of the book include its ease in reading, several examples at the end of chapters, a package similar to Xtango that provides algorithm animation, and a supportive web site by the author (see  www.mcs.drexel.edu/~shartley/ConcProgJava/index.html ) including compressed source code. As Java becomes more dominant on the server side of multi-tier applications, writing thread-safe concurrent applications becomes even more important.  Concurrent Programming  is a strong step towards teaching students and professionals such skills. Greg Gagne, Westminster College of Salt Lake City Salt Lake City, Utah