Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
.NET Multithreading
Author:
Alan L.Dennis
ISBN:
1-930110-54-5
Publisher:
Manning
Pages:
328pp
Price:
£31-50
Reviewer:
Max Palmer
Subject:
.NET
Appeared in:
16-1
At only 328 pages, ".NET Multithreading" is a fairly short book which aims to teach an 'intermediate level' developer the basics of .NET multithreading. Like most .NET books, it takes a somewhat language-neutral approach, with examples throughout the text alternating between C# and VB .NET, while the final chapter discusses how threading applies to J#. It assumes no prior knowledge/experience of multithreaded development and only briefly discusses multithreaded programming using earlier Microsoft development tools (Visual C++), although there is a chapter devoted to COM interop.

Given the above, ".NET Multithreading" should be relatively accessible, in assuming no prior knowledge, and also readable, given its length. The subject matter should be of interest to most developers, as the ability to write reliable multithreaded code is a very useful skill to have.

So is the book any good? Unfortunately, the best answer I can give is 'sort of'. Certainly, it covers most of the topics I expected to see - deadlocks, race conditions, locking mechanisms, etc. - as well as many others that were new to me - thread pools, CPU affinity and the .NET threading namespace in general. Also, topics are introduced which build upon one another as the book progresses without clouding the earlier discussions with caveats. Reading it also made me more receptive to using threads in my own .NET projects, because Microsoft seem to have made the use of threads much more accessible.

However, the book is inconsistent. For instance, some chapters contain examples with code that lack a through explanation. More worryingly, by the time I reached the end of the book I had noted a number of mistakes and occurrences of poor formatting, certainly more than I would have expected to find in a book of its short length. I was also surprised to find some relatively basic programming concepts, such as bitfields, being discussed in some depth in an 'intermediate level' book.

That said, the author explains some difficult concepts reasonably well and the book is certainly interesting to read. It is just a shame that its quality and content are so variable.