asio 0.3.8rc3 | Home | Reference | Tutorial | Examples | Design

Reference | Class Hierarchy | Class Index | Member Index

# asio::thread Class Reference

Inherits noncopyable.

Inheritance diagram for asio::thread:

List of all members.

## Detailed Description

A simple abstraction for starting threads.

The asio::thread class implements the smallest possible subset of the functionality of boost::thread. It is intended to be used only for starting a thread and waiting for it to exit. If more extensive threading capabilities are required, you are strongly advised to use something else.

Thread Safety
  Distinct objects: Safe.
  Shared objects: Unsafe.

Example
  A typical use of asio::thread would be to launch a thread to run an io_service's event processing loop:

       asio::io_service io_service;
       // ...
       asio::thread t(boost::bind(&asio::io_service::run, &io_service));
       // ...
       t.join();

## Public Member Functions

template<typename Function>
| thread (Function f)
| Start a new thread that executes the supplied function.
| ~thread ()
| Destructor.
void | join ()
| Wait for the thread to exit.

## Constructor & Destructor Documentation

template<typename Function>

asio::thread::thread | ( | Function | f | ) | `[explicit]`

Start a new thread that executes the supplied function.

This constructor creates a new thread that will execute the given function or function object.

Parameters:

  | f | The function or function object to be run in the thread. The function signature must be:
       void f();

asio::thread::~thread | ( |  | ) |

Destructor.

## Member Function Documentation

void asio::thread::join | ( |  | ) |

Wait for the thread to exit.

This function will block until the thread has exited.

If this function is not called before the thread object is destroyed, the thread itself will continue to run until completion. You will, however, no longer have the ability to wait for it to exit.

asio 0.3.8rc3 | Home | Reference | Tutorial | Examples | Design