REVIEW - NET Multithreading

Title:

NET Multithreading

Author:

Alan L. Dennis

ISBN:

1930110545

Publisher:

Manning Publications Company (2003)

Pages:

336pp

Reviewer:

Max Palmer

Reviewed:

February 2004

Rating:

★★☆☆☆

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.


Book cover image courtesy of Open Library.