---
title: "Multithreading Support for Older Code (Visual C++)"
ms.date: "08/27/2018"
helpviewer_keywords: ["threading [C++]", "multiple threads", "concurrent programming [C++]", "programming [C++], multithreaded", "multithreading [C++], about multithreading", "multiple concurrent threads", "multithreading [C++]"]
ms.assetid: 24425b1f-5031-4c6b-aac7-017115a40e7c
---
# Multithreading Support for Older Code (Visual C++)
Visual C++ allows you to have multiple concurrent threads of execution running simultaneously. With multithreading, you can spin off background tasks, manage simultaneous streams of input, manage a user interface, and much more.
## In This Section
[Multithreading with C and Win32](multithreading-with-c-and-win32.md)
Provides support for creating multithread applications with Microsoft Windows
[Multithreading with C++ and MFC](multithreading-with-cpp-and-mfc.md)
Describes what processes and threads are and what the MFC approach to multithreading is.
[Multithreading and Locales](multithreading-and-locales.md)
Discusses issues that arise when using the locale functionality of both the C Runtime Library and the C++ Standard Library in a multithreaded application.
## Related Sections
[CWinThread](../mfc/reference/cwinthread-class.md)
Represents a thread of execution within an application.
[CSyncObject](../mfc/reference/csyncobject-class.md)
Describes a pure virtual class that provides functionality common to the synchronization objects in Win32.
[CSemaphore](../mfc/reference/csemaphore-class.md)
Represents a semaphore, which is a synchronization object that allows a limited number of threads in one or more processes to access a resource.
[CMutex](../mfc/reference/cmutex-class.md)
Represents a mutex, which is a synchronization object that allows one thread mutually exclusive access to a resource.
[CCriticalSection](../mfc/reference/ccriticalsection-class.md)
Represents a critical section, which is a synchronization object that allows one thread at a time to access a resource or section of code.
[CEvent](../mfc/reference/cevent-class.md)
Represents an event, which is a synchronization object that allows one thread to notify another that an event has occurred.
[CMultiLock](../mfc/reference/cmultilock-class.md)
Represents the access-control mechanism used in controlling access to resources in a multithreaded program.
[CSingleLock](../mfc/reference/csinglelock-class.md)
Represents the access-control mechanism used in controlling access to a resource in a multithreaded program.