Chapter 20. Threads and Synchronization
Threads
are
relatively lightweight processes responsible for multitasking within
a single application. The System.Threading
namespace provides a wealth of classes and interfaces to manage
multithreaded programming. The majority of programmers might never
need to manage threads explicitly, however, because the
Common Language Runtime (CLR) abstracts
much of the threading support into classes that greatly simplify most
threading tasks. For example, in Chapter 21 you
will see how to create multithreaded reading and writing streams
without resorting to managing the threads yourself.
The first part of this chapter shows you how to create, manage, and kill threads. Even if you don’t create your own threads explicitly, you’ll want to ensure that your code can handle multiple threads if it’s run in a multithreading environment. This concern is especially important if you are creating components that might be used by other programmers in a program that supports multithreading. It is particularly significant to web services developers. Although web services (covered in Chapter 16) have many attributes of desktop applications, they are run on the server, generally lack a user interface, and force the developer to think about server-side issues such as efficiency and multithreading.
The second part of this chapter focuses on synchronization. When you have a limited resource, you may need to restrict access to that resource to one thread at a time. ...
Get Programming C# now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.