![]()
November 1995
Volume 13 Number 11MULTITHREADING
Multithreading in C++
By Jim Dugger
Semaphores are a natural for wrapping in C++ classes. Here's a simple but useful example of one way to do so.Locking Without Deadlocks
By John Rogers
Synchronization logic is hard to get right, and expensive in terms of performance. But when you need it, you need it, and it pays to know your options.A Synchronization Class Using Critical-Sections
By Matt Weisfeld
One way to enforce the discipline of controlling access to critical sections is to embed it in a C++ class. Once you get the class right, you have fewer opportunities for error at your disposal.FEATURES
Image Processing in C, Part 15: Basic Texture Operations
By Dwayne Phillips
Quantifying the concept of "texture" can help you process images more intelligently. Dwayne Phillips suggests a couple of useful recipes for identifying textures.Pulse Estimating Windows Response Time
By Kevin Gilhooly
Even the simplest of measurements can be a big help in timing an interactive system.C Database Programming with ODBC
By Alex Ragen
Open database connectivity and SQL are the keys to making this work together on a common database.BOOK REVIEW
C++ Pointers and Dynamic Memory Management
Reviewed by Chuck Allison
COLUMNS
Standard C/C++: Implementing <complex>
P. J. Plauger
The Column that Needs a Name: A Sensible Grammar Notation
Dan Saks
Questions & Answers: More on rand()
Pete Becker
The Learning C/C++urve: Living in Two Worlds
Bobby Schmidt
DEPARTMENTS
Editor's Forum
New Products
We Have Mail