Bagikan melalui


kelas Win32_Thread

Kelas WMI Win32_Thread mewakili utas eksekusi. Meskipun proses harus memiliki satu utas eksekusi, prosesnya dapat membuat utas lain untuk menjalankan tugas secara paralel. Utas berbagi lingkungan proses, sehingga beberapa utas dalam proses yang sama menggunakan lebih sedikit memori daripada jumlah proses yang sama.

Sintaks berikut disederhanakan dari kode Managed Object Format (MOF) dan menyertakan semua properti yang diwariskan. Properti dan metode dalam urutan alfabet, bukan urutan MOF.

Sintaks

[Dynamic, Provider("CIMWin32"), UUID("{8502C4DD-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_Thread : CIM_Thread
{
  string   Caption;
  string   CreationClassName;
  string   CSCreationClassName;
  string   CSName;
  string   Description;
  uint64   ElapsedTime;
  uint16   ExecutionState;
  string   Handle;
  datetime InstallDate;
  uint64   KernelModeTime;
  string   Name;
  string   OSCreationClassName;
  string   OSName;
  uint32   Priority;
  uint32   PriorityBase;
  string   ProcessCreationClassName;
  string   ProcessHandle;
  uint32   StartAddress;
  string   Status;
  uint32   ThreadState;
  uint32   ThreadWaitReason;
  uint64   UserModeTime;
};

Anggota

Kelas Win32_Thread memiliki jenis anggota ini:

Properti

Kelas Win32_Thread memiliki properti ini.

Keterangan

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: MaxLen (64), DisplayName ("Keterangan")

Deskripsi singkat objek.

Properti ini diwarisi dari CIM_ManagedSystemElement.

CreationClassName

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: Cim_Key, MaxLen (256)

Nama kelas konkret pertama yang muncul dalam rantai pewarisan yang digunakan dalam pembuatan instans. Ketika digunakan dengan properti utama kelas lainnya, properti ini memungkinkan semua instans kelas ini dan subkelasnya diidentifikasi secara unik.

Properti ini diwarisi dari CIM_Thread.

CSCreationClassName

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: Disebarluaskan ("CIM_Process. CSCreationClassName"), Cim_Key, MaxLen (256)

Nama kelas pembuatan sistem komputer pencakupan.

Properti ini diwarisi dari CIM_Thread.

CSName

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: Disebarluaskan ("CIM_Process. CSName"), Cim_Key, MaxLen (256)

Nama sistem komputer pencakupan.

Properti ini diwarisi dari CIM_Thread.

Deskripsi

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: DisplayName ("Description")

Deskripsi objek .

Properti ini diwarisi dari CIM_ManagedSystemElement.

ElapsedTime

Jenis data: uint64

Jenis akses: Baca-saja

Kualifikasi: MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| PerfTime"), Unit ("milidetik")

Total waktu eksekusi, dalam milidetik, diberikan ke utas ini sejak pembuatannya.

Untuk informasi selengkapnya tentang menggunakan nilai uint64 dalam skrip, lihat Pembuatan skrip di WMI.

ExecutionState

Jenis data: uint16

Jenis akses: Baca-saja

Kondisi operasi utas saat ini.

Properti ini diwarisi dari CIM_Thread.

Tidak diketahui (0)

Lainnya (1)

Siap (2)

Berjalan (3)

Diblokir (4)

Ditangguhkan Diblokir (5)

Siap Ditangguhkan (6)

Handle

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: MaxLen (256), Override ("Handle"), MappingStrings ("Win32API| Struktur Bantuan Alat| THREADENTRY32|th32ThreadID")

Tangani ke utas. Handel memiliki hak akses penuh secara default. Dengan akses keamanan yang benar, handel dapat digunakan dalam fungsi apa pun yang menerima handel utas. Bergantung pada bendera pewarisan yang ditentukan saat dibuat, handel ini dapat diwariskan oleh proses turunan.

InstallDate

Jenis data: tanggalwaktu

Jenis akses: Baca-saja

Kualifikasi: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Tanggal Penginstalan")

Objek telah diinstal. Properti ini tidak memerlukan nilai untuk menunjukkan bahwa objek diinstal.

Properti ini diwarisi dari CIM_ManagedSystemElement.

KernelModeTime

Jenis data: uint64

Jenis akses: Baca-saja

Qualifiers: Override ("KernelModeTime"), MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| PrivilegedTime"), Unit ("100 nanodetik")

Waktu dalam mode kernel, dalam 100 unit nanodetik. Jika informasi ini tidak tersedia, nilai 0 (nol) harus digunakan.

Untuk informasi selengkapnya tentang menggunakan nilai uint64 dalam skrip, lihat Pembuatan skrip di WMI.

Nama

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: DisplayName ("Name")

Label tempat objek diketahui. Ketika disubkelas, properti dapat ditimpa menjadi properti kunci.

Properti ini diwarisi dari CIM_ManagedSystemElement.

OSCreationClassName

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: Disebarluaskan ("CIM_Process. OSCreationClassName"), Cim_Key, MaxLen (256)

Nama kelas pembuatan sistem operasi cakupan.

Properti ini diwarisi dari CIM_Thread.

OSName

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: Disebarluaskan ("CIM_Process. OSName"), Cim_Key, MaxLen (256)

Nama sistem operasi cakupan.

Properti ini diwarisi dari CIM_Thread.

Prioritas

Jenis data: uint32

Jenis akses: Baca-saja

Kualifikasi: Mengambil alih ("Prioritas"), MappingStrings ("Win32API| Struktur Bantuan Alat| THREADENTRY32|tpDeltaPri")

Prioritas dinamis utas. Setiap utas memiliki prioritas dinamis yang digunakan penjadwal untuk menentukan utas mana yang akan dijalankan. Awalnya, prioritas dinamis utas sama dengan prioritas dasarnya. Sistem dapat menaikkan dan menurunkan prioritas dinamis, untuk memastikan bahwa itu responsif (menjamin bahwa tidak ada utas yang kelaparan untuk waktu prosesor). Sistem tidak meningkatkan prioritas utas dengan tingkat prioritas dasar antara 16 dan 31. Hanya utas dengan prioritas dasar antara 0 dan 15 yang menerima peningkatan prioritas dinamis. Angka yang lebih tinggi menunjukkan prioritas yang lebih tinggi.

PriorityBase

Jenis data: uint32

Jenis akses: Baca-saja

Kualifikasi: MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| PerfPriorityBase")

Prioritas dasar utas saat ini. Sistem operasi dapat meningkatkan prioritas dinamis utas di atas prioritas dasar jika utas menangani input pengguna, atau menurunkannya ke prioritas dasar jika utas menjadi terikat komputasi. Properti PriorityBase dapat memiliki nilai antara 0 dan 31.

ProcessCreationClassName

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: Disebarluaskan ("CIM_Process. CreationClassName"), Cim_Key, MaxLen (256)

Nilai properti proses pencakupan CreationClassName .

Properti ini diwarisi dari CIM_Thread.

ProcessHandle

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: MaxLen (256), Ambil alih ("ProcessHandle"), Disebarkan ("CIM_Process. Handle"), MappingStrings ("Win32API| Struktur Bantuan Alat| THREADENTRY32|th32OwnerProcessID")

Proses yang membuat utas. Isi properti ini dapat digunakan oleh elemen antarmuka pemrograman aplikasi (API) Windows.

StartAddress

Jenis data: uint32

Jenis akses: Baca-saja

Kualifikasi: MappingStrings ("WIn32API| Objek Utas| LPTHREAD_START_ROUTINE|lpStartAddress")

Alamat awal utas. Karena aplikasi apa pun dengan akses yang sesuai ke utas dapat mengubah konteks utas, nilai ini mungkin hanya merupakan perkiraan dari alamat awal utas.

Status

Jenis data: string

Jenis akses: Baca-saja

Kualifikasi: MaxLen (10), DisplayName ("Status")

Status objek saat ini. Berbagai status operasional dan nonoperasional dapat ditentukan. Status operasional meliputi: "OK", "Degraded", dan "Pred Fail" (elemen, seperti hard disk drive berkemampuan SMART, mungkin berfungsi dengan baik tetapi memprediksi kegagalan dalam waktu dekat). Status nonoperational meliputi: "Error", "Starting", "Stopping", dan "Service". Yang terakhir, "Layanan", dapat berlaku selama resilvering cermin disk, memuat ulang daftar izin pengguna, atau pekerjaan administratif lainnya. Tidak semua pekerjaan tersebut online, namun elemen terkelola tidak "OK" atau di salah satu status lainnya.

Properti ini diwarisi dari CIM_ManagedSystemElement.

Nilainya adalah:

OK ("OK")

Kesalahan ("Kesalahan")

Terdegradasi ("Terdegradasi")

Tidak diketahui ("Tidak Diketahui")

Pred Fail ("Pred Fail")

Memulai ("Memulai")

Menghentikan ("Berhenti")

Layanan ("Layanan")

Stres ("Stres")

NonRecover ("NonRecover")

Tidak Ada Kontak ("Tidak Ada Kontak")

Lost Comm ("Lost Comm")

ThreadState

Jenis data: uint32

Jenis akses: Baca-saja

Kualifikasi: MappingStrings ("Win32API| Status Utas")

Status eksekusi saat ini untuk utas.

Diinisialisasi (0)

Diinisialisasi — Ini diakui oleh mikrokernel.

Siap (1)

Siap — Ini disiapkan untuk berjalan pada prosesor berikutnya yang tersedia.

Berjalan (2)

Berjalan — Sedang dieksekusi.

Siaga (3)

Siaga — Ini akan berjalan, hanya satu utas yang mungkin dalam keadaan ini pada satu waktu.

Dihentikan (4)

Dihentikan — Selesai dieksekusi.

Menunggu (5)

Menunggu - Belum siap untuk prosesor, ketika siap, prosesor akan dijadwalkan ulang.

Transisi (6)

Transisi — Utas sedang menunggu sumber daya selain prosesor,

Tidak diketahui (7)

Tidak diketahui — Status utas tidak diketahui.

ThreadWaitReason

Jenis data: uint32

Jenis akses: Baca-saja

Kualifikasi: MappingStrings ("Win32API| Alasan Tunggu Utas")

Alasan mengapa utas menunggu. Nilai ini hanya valid jika anggota ThreadState diatur ke Transisi (6). Pasangan peristiwa memungkinkan komunikasi dengan subsistem yang dilindungi.

Eksekutif (0)

FreePage (1)

Halaman Bebas

PageIn (2)

PoolAllocation (3)

ExecutionDelay (4)

FreePage (5)

PageIn (6)

Eksekutif (7)

FreePage (8)

PageIn (9)

PoolAllocation (10)

ExecutionDelay (11)

FreePage (12)

PageIn (13)

EventPairHigh (14)

EventPairLow (15)

LPCReceive (16)

LPCReply (17)

VirtualMemory (18)

PageOut (19)

Tidak diketahui (20)

UserModeTime

Jenis data: uint64

Jenis akses: Baca-saja

Kualifikasi: Mengambil alih ("UserModeTime"), MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| UserTime"), Unit ("100 nanodetik")

Waktu dalam mode pengguna, dalam 100 unit nanodetik. Jika informasi ini tidak tersedia, nilai 0 (nol) harus digunakan.

Untuk informasi selengkapnya tentang menggunakan nilai uint64 dalam skrip, lihat Pembuatan skrip di WMI.

Keterangan

Kelas Win32_Thread berasal dari CIM_Thread.

Gambaran Umum

Untuk pemantauan rutin sehari-hari, biasanya ada sedikit alasan untuk memiliki daftar utas terperinci dan properti terkaitnya. Komputer membuat dan menghapus ribuan utas selama sehari, dan beberapa kreasi atau penghapusan ini bermakna bagi siapa pun kecuali pengembang yang menulis perangkat lunak.

Namun, ketika Anda memecahkan masalah dengan aplikasi, melacak utas individual untuk proses memungkinkan Anda mengidentifikasi kapan utas dibuat dan kapan (atau jika) utas tersebut dihancurkan. Karena utas yang dibuat tetapi tidak dihancurkan menyebabkan kebocoran memori, melacak utas individual dapat menjadi informasi yang berguna untuk teknisi dukungan. Demikian juga, mengidentifikasi prioritas utas dapat membantu menentukan utas yang, dengan berjalan pada prioritas yang sangat tinggi, adalah mendahului siklus CPU yang diperlukan oleh utas lain dan proses lainnya.

Menggunakan Win32_Thread

Seperti yang tersirat dalam blok sintaks sebelumnya, kelas Win32_Thread tidak melaporkan nama proses di mana setiap utas berjalan. Sebaliknya, ia melaporkan ID proses di mana utas berjalan. Untuk mengembalikan nama proses dan daftar semua utasnya, skrip Anda harus:

  1. Sambungkan ke kelas Win32_Process dan kembalikan daftar proses dan ID prosesnya.
  2. Simpan sementara informasi ini dalam array atau objek Kamus.
  3. Untuk setiap ID proses, kembalikan daftar utas untuk proses tersebut, lalu tampilkan nama proses dan daftar utas.

Contoh

Sampel VBScript berikut memantau utas yang berjalan di komputer.

Set objDictionary = CreateObject("Scripting.Dictionary")
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcesses
 objDictionary.Add objProcess.ProcessID, objProcess.Name
Next
Set colThreads = objWMIService.ExecQuery("SELECT * FROM Win32_Thread")
For Each objThread in colThreads
 intProcessID = CInt(objThread.ProcessHandle)
 strProcessName = objDictionary.Item(intProcessID)
 Wscript.Echo strProcessName & VbTab & objThread.ProcessHandle & _
              VbTab & objThread.Handle & VbTab & objThread.ThreadState
Next

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Ruang nama
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Lihat juga

CIM_Thread

Kelas Sistem Operasi