November 1995
Volume 13 Number 11

MULTITHREADING

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