|
|||||||||||||||||||||||||||||||||||
|
16 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
36 of 37 people found the following review helpful:
5.0 out of 5 stars
This is could be a classic CS book,
This review is from: Concurrency: State Models & Java Programs (Hardcover)
This book does not belong with other Java books. This is a real computer science textbook that should be sitting next to Rivest's Algorithms book. The use of Java is incidental and makes the book very accessible without detracting from the issues at hand. It has to be one of the most well conceived computer science books ever written. The material covered is maddeningly difficult to master informally because concurrency errors often manifest themselves as rare, random, and disastrous events that cannot be reproduced. Most of the book is laying down a solid formal foundation in which to reason about concurrency; the only hope for getting it right when things are difficult. It also comes with analysis tools (in Java of course!) to help people who learn by exploration, experimentation, and visualisation.
26 of 26 people found the following review helpful:
5.0 out of 5 stars
Excellent Textbook on Concurrency Theory and Practice,
By Wolfgang Emmerich (we@acm.org) (London, UK) - See all my reviews
This review is from: Concurrency: State Models & Java Programs (Hardcover)
I have used Magee and Kramer's book (or rather their manuscript) twice in the UG programme of the Dept. of Computer Science at University Collge London. I used it to teach a 30 hours course on Concurrency to final year BSc students in Computer Science. The book is very appealing for several reasons: Firstly, it is the only available book that provides an engineering discipline to concurrency. It covers both a sound introduction to the theory of concurrency and practical guidelines how to design concurrent programs using the UML and Java. Secondly, the book is nicely written indeed. The concepts are well motivated, the intriguingly difficult theory of concurrency is well explained and the book is full of examples that show both theory and practice of Concurrency. Thirdly, the book is not only a book; it's a nicely boundled package. It comes with Java demonstration applets that I used to visualize concurrency concepts, such as Monitors, Mutual Exclusion and Fairness in the class room. Moreover, the book includes a CD with a tool that students (and professors) can use for modelling and model checking purposes. The tool implements labelled transition systems analysis and supports visualization of label transition system execution. Finally the web site that accompanies the book is full of exercises and exam questions and model answers are available too. Using this material was a truly positive experience.
20 of 20 people found the following review helpful:
5.0 out of 5 stars
Concurrency for the new millenium,
By Judith Bishop (jbishop@cs.up.ac.za) (South Africa and Canada) - See all my reviews
This review is from: Concurrency: State Models & Java Programs (Hardcover)
I have also used this book in manuscript form for two years at the University of Pretoria, South Africa, and am now using it in Victoria, Canada. In both cases, the book forms the introductory part to a larger course on object-oriented distributed systems.Without this book the students would be lost in the mire of COM, RMI, CORBA etc and learn no principles to carry them through after graduation. Magee and Kramer package up the classical Hoare CSP in such a way that it is palatable, easy to use, and really illustrates difficult points to students on-line. Students say the course is fun. It is fitting that this book should appear just as Tony Hoare retires from Oxford. Magee and Kramer show how concurrency should be done in the new millenium. Just one word of warning: there are five notations to master in the book: FSP modelling, LTS diagrams, UML diagrams, structure diagrams and Java. I found that being forewarned on this aspect helped me explain the need for all of them to students.
16 of 16 people found the following review helpful:
5.0 out of 5 stars
extremely useful for understanding concurrency issues,
By A Customer
This review is from: Concurrency: State Models & Java Programs (Hardcover)
It was only after reading that book that I was able to really understand the conecepts of interleaved actions, race conditions, semaphores and monitors (as well as other concurrency-related issues). As a newcomer to IT generally, reading this book enabled me to understand better the Operating Systems course at Imperial College. I think the reading of this book should precede any approach to a course on operating systems. As a final note, Jeff Kramer is one of the most popular lecturers at the department of computing of Imperial College. Many other studens I spoke too were convinced that his teaching was by far the most efficient. I strongly recommend the book! I still use it at work as an ever useful reference.
40 of 48 people found the following review helpful:
1.0 out of 5 stars
Theory yes, practical no.,
By Bogus Exception (Norwich, Connecticut United States) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Concurrency: State Models and Java Programs (Hardcover)
This book is a good example of how to sell a book to people based solely on it's title. I bought it, so they succeeded.
I'll try to be brief, and not rant. The book was obviously written by someone who knows some non-computer concurrency theory. Then another person pasted some examples from early versions of Java. Unfortunately, although the book was written in 2006, it has NOTHING about J2SE 5 in it-nothing. The most important aspects of concurrency added to Java ever are ommitted. To give you an idea, there are NO entries in the index under the letter "Q". Seriously. All of the really exciting stuff that "Thinking in Java 4" by Bruce Eckel covers are nowhere to be found in this old classroom text. The most useful components of Java concurrency communication are simply not part of this text. These include all the "Queus" in J2SE 5. To me, the best part of Java concurrency is the new java.util.concurrent.BlockingQueue interface. LinkedBlockingQueues and ArrayBlockingQueues blow away the old wait(), notify() and notifyAll() way of doing things that this book still uses. Synchronized queues are simply amazing, and I really expected the text to at least talk about how to best use them. Nope. Another example of something really useful that is ommitted in this "modern" text is the CountDownLatch. I can't believe you can write a book about threading and not include CountDownLatch and CyclicBarrier! Looking for examples of how to use the DelayQueue classes? Sorry-never heard of them. PriorityBlockingQueues? Nope. Now I know what you must be thinking. "He's being awfully hard on the authors!". But you decide for yourself. Would you buy a book published this year about Java that had no mention of the Executor classes? Thats right, look elsewhere for info on CachedThreadPools, FixedThreadPools, SingleThreadExecutors, ExecutorServices, Futures, and even the most basic Callable. I mean, seriously. How could they release a book like this with no mention of daemon threads? And of course no mention of the next wave of threading styles, Active Objects/Actors. All the examples are written in Applets, too... Again, if you are looking for a book on high level theory and lots of strange drawings in bizarre formats that aren't even close to UML-this book is for you. This is an OK reference for someone who has never heard of concurrency/threading, and has no intention of ever programming. Update: The book you really want is: Java Concurrency in Practice by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea Addison-Wesley Professional (May 9, 2006) (mine was July) ISBN: 0321349601 Trains on all the covers? Whats up with that?
7 of 7 people found the following review helpful:
5.0 out of 5 stars
Concurrency fundamentals using a model-based approach,
By
This review is from: Concurrency: State Models and Java Programs (Hardcover)
I have used the first edition of this textbook in a course on concurrent and real-time systems at The University of Queensland since 2001, and I am looking forward to using the second edition from next year. This textbook is an excellent introductory textbook to concurrency (in Java) in that it focuses on the foundations of concurrency, rather than the latest features and tricks in programming languages to make concurrent programs as efficient as possible.
My experience with teaching concurrent programming is that students find it difficult to write concurrent programs (even simple ones) that are error-free and anecdotal evidence from colleagues in industry indicates that the situation is not much different for many experienced programmers. As such, I believe that we should focus on the fundamentals when we teach concurrent programming and make sure that the students understand these before we move on to more advanced topics. The model-based approach followed by the authors is also refreshing. While I don't believe that the model-based approach will eliminate the need for other V&V approaches such as testing, it is clear that models are and will play an increasingly important role in software engineering. The book introduces models of concurrent systems with a specific purpose in mind, provides tool support to analyse the models for properties of interest, and (perhaps most importantly) applies the model-based approach consistently throughout the book. Most of the extensions in the second edition are related to the model-based approach, including new chapters on program verification and on specifying and validating logical properties. In summary, I highly recommend this book as an introductory text on concurrent programming, especially for those people interested in the rapidly evolving area of model-based development. If you are interested in the latest concurrency features of the Java programming language or how to write the most efficient concurrent programs, you may need to purchase other books (such as the ones by Doug Lea or Brian Goetz) as well.
7 of 7 people found the following review helpful:
5.0 out of 5 stars
Landmark book about the real issues,
By Judith Bishop "Judith Bishop" (Pretoria, South Africa) - See all my reviews
This review is from: Concurrency: State Models and Java Programs (Hardcover)
This is truly a landmark book, from Kramer and Magee who have been recognised by ACM SIGSOFT with the 2005 Outstanding Research Award for significant and lasting research contributions to the theory or practice of software engineering. That is something to live up to, and the book does so admirably.
"Concurrency" is the only book we have found that presents a sound formal approach to the subject in a palatable manner. We have used the book for nearly ten years to teach students from second year upwards how to reason about programs that run concurrently. The main contribution of the book is its use of the FSP notation and the accompanying LTSA state analyser. With these in hand, the student is led through the classical problems of mutual exclusion, monitors, deadlock, safety, liveness, bounded buffers and timed systems. Each chapter has a interesting real-life example, such as cars on a single-lane bridge, or a parcel routing machine, and each of these also runs as a Java applet. Students can interact with the applets to discover the effects of speed, overload and see how race conditions or deadlock can occur - something quite foreign to them in sequential programming. The Java programs are generated from the FSP, not automatically, but in a stylised way that enables students to understand the basic units of threading in any modern language. They do not make use of the latest Java libraries and tools for this specific reason, and are certainly not the main thrust of the book. The programs are described in UML as well as in structure diagrams more suited to concurrency. The second edition has improved the exposition of several of the chapters and also added two more advanced chapters on verification and temporal logic. Together with the notes, further reading and exercises at the end of each chapter, this makes the book into a very useful resource for the practising programmer, as well as the student. Certainly, we have found students resorting to the techniques taught in this book when things get tough with big projects in later years.
6 of 6 people found the following review helpful:
4.0 out of 5 stars
Why this book is important.,
By
This review is from: Concurrency: State Models and Java Programs (Hardcover)
There are several levels of understanding of practical concurrency.
At first you have a palette of tool in your language and you delve into creating multithreaded programs. Hopefully, soon you realize that you need to protect concurrently accessed data from corruption so you start to use low level protection operations to gate access to the data. Many programmers, who consider themselves adept at multi-threaded coding, never advance beyond this point. Next you encounter race and deadlock issues. These can not be addressed by protecting your data because they are flaws in the state logic of your machine. You can address them with careful ordering of your operations, there are tools to help with detection and elimination and finally picking higher level concurrency constructs can help reduce these. Many programmers use these techniques but the same techniques are frequently an invitation to greater complexity without solving the underlying issue. The next level, and I am not sure if it is the last, is when you realize that some form of state machine representation is the only consistent way to produce a safe concurrent program that does what you want. It has more to do with a clear model of the operations then it does with any form of concurrency construct. Even with the latest Java 5 threading and concurrency tools you still would need to model to know if your case effectively fits with the construct provided. Okay, that was a long winded way of explaining why some people do not get this book. It is an important book but it is not a perfect book. I found the first half to be a rather slow introduction to concurrent statefulness. The cases covered are very basic, like Dining Philosophers. I enjoyed the second half more and found some useful information. The dependence on the LTSA modeling methods/tools I found cumbersome and of questionable usefulness. I think just UML Statecharts would have been more useful if less precise/provable. The book explicitly uses only the lowest level of threading tools from Java, which they then use to build up to higher level constructs as illustration of modeling. It is very clearly a mid-level undergraduate text book for Computer Science and it reads like it. If you are most interested in the current mechanics of threading under Java this would be a very bad first choice.
5 of 6 people found the following review helpful:
3.0 out of 5 stars
Too dependent on FSP, LTS, and LTSA,
By pvonk (Upstate, NY) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Concurrency: State Models and Java Programs (Hardcover)
I'm using the text this semester in my course, and while it presents the material in a clear enough way, I find the authors' dependence on the LTS/FSP language to model concurrency examples (and running these on a simulator - LTSA) adds just one extra layer my students have to master. The simulator does not include decent documentation (I've been trying to run a particular trace that the text suggests doing, but doesn't say how to - and I haven't found how to do it.) The FSP language takes a bit of effort to master; the text does have three appendices on FSP, but again, that's an extra layer the students have to understand.
Most of the text uses the FSP language to present models of processes. Finite state diagrams are also plentiful and add to the visual presentation. Sample Java code is also woven into the discussions - these graphical Java applets do have a "wow" factor. I think my reservations have to do with certain topics that could be easily presented but are made more complicated with the addition of elaborate FSP models that can slow down the reader. At times the material gets too far down into nuts and bolts when a more general view can work just as well.
1 of 1 people found the following review helpful:
4.0 out of 5 stars
Good book,
By Siddhardha (Colorado, USA) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Concurrency: State Models and Java Programs (Hardcover)
This book was a required text in a graduate course in Software Engineering that I had taken. As many other reviewers said, it is solid on theory but lacks from a practical standpoint. None of the new threading features in J2SE 5 are covered which is a significant drawback. For beginners to threading, this book does a decent job of illustrating some of the issues/problems that will be encountered and potential ways to solve them. The book's website has applets that allows the reader to see some of the problems in action which is nice. However, if you are already working in the industry and you need to use threads, a better choice would be Java Concurrency In Practice by Brian Goetz.
|
|
Most Helpful First | Newest First
|
|
Concurrency: State Models and Java Programs by Jeff Magee (Hardcover - July 4, 2006)
$59.64
In Stock | ||