# Class CIM_Thread
extends CIM_EnabledLogicalElement

Threads represent the ability to execute units of a Process or task in parallel. A Process can have many Threads, each of which is weak to the Process.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Thread

## Direct Known Subclasses

CIM_UnixThread

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | Threads represent the ability to execute units of a Process or task in parallel. A Process can have many Threads, each of which is weak to the Process.
UMLPackagePath | string | CIM::System::Processing
Version | string | 2.7.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
CreationClassName | string |
Description | string | CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allow all instances of this class and its subclasses to be uniquely identified.
Key | boolean | true
MaxLen | uint32 | 256
CSCreationClassName | string |
Description | string | The scoping ComputerSystem's CreationClassName.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_Process.CSCreationClassName
CSName | string |
Description | string | The scoping ComputerSystem's Name.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_Process.CSName
ExecutionState | uint16 |
Description | string | Indicates the current operating condition of the Thread. Values include ready (2), running (3), and blocked (4), among others. The majority of the enumerated values are obvious. However, a few require additional explanation: 7 (Ready but Relinquished Processor) describes that a thread is in the Ready state, but has voluntarily relinquished execution time to other threads. For example, this state may indicate a problem when the relinquishing thread is not handling items on its queues. If these semantics cannot be detected, the thread should report its state as 2 ("Ready"). 8 (Hung) indicates that a thread is not responding.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8
Values | string | Unknown, Other, Ready, Running, Blocked, Suspended Blocked, Suspended Ready, Ready But Relinquished Processor, Hung
Handle | string |
Description | string | A string used to identify the Thread.
Key | boolean | true
MaxLen | uint32 | 256
KernelModeTime | uint64 |
Description | string | Time in kernel mode, in milliseconds. If this information is not available, a value of 0 should be used.
PUnit | string | second * 10^-3
Units | string | MilliSeconds
OSCreationClassName | string |
Description | string | The scoping OperatingSystem's CreationClassName.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_Process.OSCreationClassName
OSName | string |
Description | string | The scoping OperatingSystem's Name.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_Process.OSName
Priority | uint32 |
Description | string | Priority indicates the urgency or importance of execution of a Thread. A Thread may have a different priority than its owning Process. If this information is not available for a Thread, a value of 0 should be used.
ProcessCreationClassName | string |
Description | string | The scoping Process' CreationClassName.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_Process.CreationClassName
ProcessHandle | string |
Description | string | The scoping Process' Handle.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_Process.Handle
UserModeTime | uint64 |
Description | string | Time in user mode, in milliseconds. If this information is not available, a value of 0 should be used.
PUnit | string | second * 10^-3
Units | string | MilliSeconds

### Inherited Properties

Name | Data Type
--- | ---
Caption | string
CommunicationStatus | uint16
Description | string
DetailedStatus | uint16
ElementName | string
EnabledDefault | uint16
EnabledState | uint16
Generation | uint64
HealthState | uint16
InstallDate | datetime
InstanceID | string
Name | string
OperatingStatus | uint16
OtherEnabledState | string
PrimaryStatus | uint16
RequestedState | uint16
Status | string
TimeOfLastStateChange | datetime
TransitioningToState | uint16
AvailableRequestedStates | uint16[]
OperationalStatus | uint16[]
StatusDescriptions | string[]

## Class Methods

### Inherited Class Methods

Name | Return Type
--- | ---
RequestStateChange | uint32