ÿþ<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=unicode" /> <meta http-equiv="Content-Language" content="en-us" /> <title>The Win32 Windows thread synchronization techniques used in Windows system programming</title> <meta name="keywords" content="Windows system, thread synchronization, computer, computer resources, technology, utility, processor, tools, microprocessors, optimization, hardware" /> <meta name="description" content="The thread synchronization programming tutorial for Windows system with notes, code samples and program examples" /> </head> <body topmargin="20" leftmargin="20" rightmargin="20" bottommargin="20"> <table border="0" width="100%"> <tr> <td colspan="2"> <h1 align="center" style="margin-top:0; margin-bottom:0"> <font face="Batang"><span style="font-weight: 400">The Windows Thread Synchronization Win32 Programming</span></font></h1> </td> </tr> <tr> <td colspan="2"> <p align="center"> <script type="text/javascript"><!-- google_ad_client = "pub-8089415323104206"; google_ad_slot = "2156170134"; google_ad_width = 728; google_ad_height = 15; //--> </script> &nbsp;<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></p> </td> </tr> <tr> <td width="7%" align="center"> <h3> <font face="Byington"><span style="font-weight: 400"> <a title="The Win32 programming tutorial using Visual Studio, C and C++ languages" target="_top" href="index.html"> HOME</a></span></font></h3> <p align="left">&nbsp;</p> <h3><span style="font-weight: 400"><font face="Byington"> <a title="Processes and thread operating system programming for Windows" target="_top" href="http://www.installsetupconfig.com/win32programming/windowsthreadsprocessapis7index.html"> Windows Process and Thread</a></font></span></h3> <p align="left">&nbsp;</p> <div align="center"> <script src="http://tag.contextweb.com/TagPublish/getjs.aspx?action=VIEWAD&cwrun=200&cwadformat=160X600&cwpid=527221&cwwidth=160&cwheight=600&cwpnet=1&cwtagid=82739"></script> </div> <p align="left">&nbsp;</p> <p> <script type="text/javascript"><!-- google_ad_client = "pub-8089415323104206"; google_ad_slot = "3614899554"; google_ad_width = 160; google_ad_height = 600; //--> </script> &nbsp;<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></p> </td> <td width="92%"> <h1 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font size="5" face="Times New Roman"> <span style="line-height:115%; font-family:&quot;Arial&quot;; font-weight:400">What do we have in this session?</span></font></h1> <p style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> &nbsp;</p> <p style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Arial">As one of the important topics related to Windows process and thread, this tutorial tries to explain the details of the process and thread synchronization techniques used in Windows. The program examples also try to demonstrate several &#39;issues&#39; related to concurrency that exists such as deadlock, race condition, starvation etc. and how the synchronization methods used can &#39;reduce&#39; those problems.</font></p> <ol> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11.html">Intro</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <a href="threadprocesssynchronizationapis11_1.html"> <span style="font-weight: 400"><font face="Byington">Process and Thread Revisited</font></span></a></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Atomicity</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Windows Thread States</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_2.html">Wait Functions</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Single-object Wait Functions</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Multiple-object Wait Functions</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Alertable Wait Functions</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Registered Wait Functions</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Wait Functions and Time-out Intervals</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Wait Functions and Synchronization Objects</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Wait Functions and Creating Windows</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_3.html">Synchronization Objects</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Events</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_4.html">Mutex and Semaphore</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_5.html">Interprocess Synchronization</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Object Names</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Object Inheritance</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Object Duplication</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Other Synchronization Mechanisms</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Synchronization and Overlapped Input and Output</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_6.html">Asynchronous Procedure Calls (APC)</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Synchronization Internals</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Critical Section Objects</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_7.html">Condition Variables</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Slim Reader/Writer (SRW) Locks</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">One-Time Initialization</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">One-Time Initialization: Synchronous Mode</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">One-Time Initialization: Asynchronous Mode</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_8.html">Interlocked Variable Access</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">The Interlocked API</span></font></h3> </li> <li> <h3 style="margin-bottom:0;line-height: normal; margin-top:0"><font face="Byington"><span style="font-weight: 400">Interlocked Singly Linked Lists</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Timer Queues</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_9.html">Concurrency and Race Conditions</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Race Condition Program Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington"> <a href="threadprocesssynchronizationapis11_10.html">Concurrency, Deadlocks and Livelocks</a></font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington">Liveness</font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington">Deadlock Example - The Dining Philosophers</font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington"> <a href="threadprocesssynchronizationapis11_11.html">Deadlock and Critical Section Program Example</a></font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington"> <a href="threadprocesssynchronizationapis11_12.html">Starvation</a></font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington">Livelock</font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington">Program Examples on Using Synchronization Objects</font></span></h3> </li> </ol> <p style="margin-bottom:0mm;margin-bottom:0; margin-top:0">&nbsp;</p> <p style="margin-bottom:0mm;margin-bottom:0; margin-top:0">&nbsp;</p> <div align="center"> <script src="http://tag.contextweb.com/TagPublish/getjs.aspx?action=VIEWAD&cwrun=200&cwadformat=728X90&cwpid=527221&cwwidth=728&cwheight=90&cwpnet=1&cwtagid=82740"></script> </div> <p style="margin-top: 0; margin-bottom: 0"></p> <p style="margin-bottom:0mm;margin-bottom:0; margin-top:0">&nbsp;</p> <ol start="43"> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <span style="font-weight: 400"><font face="Byington"> <a href="threadprocesssynchronizationapis11_13.html">The WaitForSingleObject() Example</a></font></span></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_14.html">The WaitForMultipleObjects() Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0;line-height: normal; margin-top:0"><font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_15.html">Waiting for Multiple Objects Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_16.html">Using Named Objects Program Examples</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">The First Process Program Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_17.html">Second Process Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_18.html">Using Event Objects Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_19.html">Using Mutex Objects Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_20.html">Another Mutex Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_21.html">Using Semaphore Objects Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_22.html">Another Semaphore Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_23.html">Six philosophers with six chopsticks</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Starvation Issue</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">The Six philosophers with Semaphore Program Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_24.html">Using Waitable Timer Objects Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_25.html">Using Waitable Timers with an Asynchronous Procedure Call Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_26.html">Using Critical Section Objects Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_27.html">Another Critical Section Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_28.html">More Critical Section Program Examples</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_29.html">Using Condition Variables Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_30.html">Using One-Time Initialization Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">The Synchronous Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_31.html">Asynchronous Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_32.html">Using Singly Linked Lists Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_33.html">Using Timer Queues Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_34.html">The Interlocked Functions Program Example 1</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_35.html">The Interlocked Functions Program Example 2</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_36.html">The Interlocked Functions Program Example 3</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_37.html">Extra Synchronization Related working Program Examples</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Creating a Single Thread Program Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_38.html">Cancelling a Thread Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_39.html">The Multithread without any synchronization Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_40.html">Synchronization with Interlocked Exchange Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Some Notes for IA64</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_41.html">Synchronization with Spinlocks Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_42.html">Synchronization Using Mutexes Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_43.html">Synchronization with Critical Sections Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_44.html">Synchronization Using Semaphores Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Terminal Server and Naming Semaphore Objects</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_45.html">Thread Scheduling and Prioritizing</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Managing Thread Priorities in Windows</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_46.html">Windows Scheduling Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Thread Scheduling Program Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400"> <a href="threadprocesssynchronizationapis11_47.html">Managing Multiple Threads Program Example</a></span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">Multiple Threads Example</span></font></h3> </li> <li> <h3 style="margin-bottom:0mm;margin-bottom:0; margin-top:0"> <font face="Byington"><span style="font-weight: 400">More: Synchronization Reference</span></font></h3> </li> </ol> </td> </tr> <tr> <td colspan="2"> <p align="center"> <script type="text/javascript"><!-- google_ad_client = "pub-8089415323104206"; google_ad_slot = "0761177910"; google_ad_width = 728; google_ad_height = 90; //--> </script> &nbsp;<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></p> </td> </tr> <tr> <td colspan="2"> <h3 align="center" style="margin-top: 0; margin-bottom: 0"> <font face="Byington"><span style="font-weight: 400">&lt; <a style="color: blue; text-decoration: underline" title="The Win32 programming tutorials for Windows process and thread with code samples and program examples" href="processstatushelperapis10index.html"> Process Status Help APIs</a> | <a title="The Win32 programming tutorial using Visual Studio, C and C++ languages" style="color: blue; text-decoration: underline" href="index.html"> Win32 Programming</a> | <a title="An introduction to the Windows thread synchronization programming" style="color: blue; text-decoration: underline" href="threadprocesssynchronizationapis11.html"> Thread Synchronization 1</a> &gt;</span></font></h3> <p align="center" style="margin-top: 0; margin-bottom: 0"> <font face="DejaVu Sans Condensed" size="2"><script type="text/javascript" language="javascript"> var sc_project=443642; var sc_partition=2; var sc_security=""; var sc_invisible=1; </script><script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"></script><noscript><a href="http://www.statcounter.com/" target="_blank"> <img src="http://c3.statcounter.com/counter.php?sc_project=443642&java=0&security=&invisible=1" alt="web page hit counter" border="0" /> </a> </noscript></font> </td> </tr> </table> </body> </html>