Home | Previous Page | Next Page   Disk, Memory, and Process Management > Virtual Processors and Threads > Virtual Processors >

Threads

A thread is a piece of work for a virtual processor in the same way that the virtual processor is a piece of work for the CPU. The virtual processor is a task that the operating system schedules for execution on the CPU; a database server thread is a task that the virtual processor schedules internally for processing. Threads are sometimes called lightweight processes because they are like processes, but they make fewer demands on the operating system.

Database server virtual processors are multithreaded because they run multiple concurrent threads.

A thread is a task that the virtual processor schedules internally for processing.A virtual processor runs threads on behalf of SQL client applications (session threads) and also to satisfy internal requirements (internal threads). In most cases, for each connection by a client application, the database server runs one session thread. The database server runs internal threads to accomplish, among other things, database I/O, logging I/O, page cleaning, and administrative tasks. For cases in which the database server runs multiple session threads for a single client, refer to Processing in Parallel.

A user thread is a database server thread that services requests from client applications. User threads include session threads, called sqlexec threads, which are the primary threads that the database server runs to service client applications.

User threads also include a thread to service requests from the onmode utility, threads for recovery, and page-cleaner threads.

To display active user threads, use onstat -u. For more information on monitoring sessions and threads, refer to your IBM Informix: Performance Guide.

Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]