Bagikan melalui


Apa yang Baru dalam Sinkronisasi

Windows menyertakan elemen pemrograman baru berikut ini untuk sinkronisasi.

Windows 8

Fungsi Baru

DeleteSynchronizationBarrier

Menghapus penghubung sinkronisasi.

EnterSynchronizationBarrier

Menyebabkan utas panggilan menunggu pada penghubung sinkronisasi hingga jumlah maksimum utas telah memasuki pembatas.

GetOverlappedResultEx

Mengambil hasil operasi yang tumpang tindih pada file yang ditentukan, pipa bernama, atau perangkat komunikasi dalam interval waktu habis yang ditentukan. Utas panggilan dapat melakukan penantian yang dapat diperingatkan.

InitializeSynchronizationBarrier

Menentukan jumlah maksimum utas dan jumlah putaran untuk hambatan sinkronisasi baru.

WaitOnAddress

Menunggu nilai pada alamat yang ditentukan berubah.

WakeByAddressAll

Membangunkan semua utas yang menunggu nilai alamat berubah.

WakeByAddressSingle

Membangunkan satu utas yang menunggu nilai alamat berubah.

Fungsi Baru yang Saling Di-interlock

InterlockedAddNoFence

Melakukan operasi penambahan atomik pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAddNoFence64

Melakukan operasi penambahan atomik pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAndNoFence

Melakukan operasi Atom AND pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAnd8NoFence

Melakukan operasi Atom AND pada nilai karakter yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAnd16NoFence

Melakukan operasi Atom AND pada nilai SHORT yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAnd64NoFence

Melakukan operasi Atom AND pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedBitTestAndComplement64

Menguji bit yang ditentukan dari nilai LONG64 yang ditentukan dan melengkapinya. Operasi ini bersifat atomik.

InterlockedBitTestAndResetAcquire

Menguji bit yang ditentukan dari nilai LONG yang ditentukan dan mengaturnya ke 0. Operasi ini bersifat atomik, dan dilakukan dengan memperoleh semantik pemesanan memori.

InterlockedBitTestAndResetRelease

Menguji bit yang ditentukan dari nilai LONG yang ditentukan dan mengaturnya ke 0. Operasi ini bersifat atomik, dan dilakukan menggunakan semantik rilis memori.

InterlockedBitTestAndSetAcquire

Menguji bit yang ditentukan dari nilai LONG yang ditentukan dan mengaturnya ke 1. Operasi ini bersifat atomik, dan dilakukan dengan memperoleh semantik pemesanan memori.

InterlockedBitTestAndSetRelease

Menguji bit yang ditentukan dari nilai LONG yang ditentukan dan mengaturnya ke 1. Operasi ini bersifat atomik, dan dilakukan dengan semantik urutan memori rilis.

InterlockedCompareExchangeNoFence

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 32-bit yang ditentukan dengan nilai 32-bit lainnya berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedCompareExchange16

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 16-bit yang ditentukan dengan nilai 16-bit lainnya berdasarkan hasil perbandingan.

InterlockedCompareExchange16Acquire

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 16-bit yang ditentukan dengan nilai 16-bit lainnya berdasarkan hasil perbandingan. Operasi ini dilakukan dengan memperoleh semantik pemesanan memori.

InterlockedCompareExchange16Release

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 16-bit yang ditentukan dengan nilai 16-bit lainnya berdasarkan hasil perbandingan. Pertukaran dilakukan dengan semantik pemesanan memori rilis.

InterlockedCompareExchange16NoFence

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 16-bit yang ditentukan dengan nilai 16-bit lainnya berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedCompareExchangeNoFence64

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 64-bit yang ditentukan dengan nilai 64-bit lainnya berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedCompareExchange128

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 128-bit yang ditentukan dengan nilai 128-bit lainnya berdasarkan hasil perbandingan.

InterlockedCompareExchangePointerNoFence

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi membandingkan dua nilai penunjuk dan pertukaran yang ditentukan dengan nilai pointer lain berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedDecrementNoFence

Penurunan (berkurang satu) nilai variabel 32-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedDecrement16

Penurunan (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik.

InterlockedDecrement16Acquire

Penurunan (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan dengan memperoleh semantik pemesanan memori.

InterlockedDecrement16Release

Penurunan (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan dengan semantik urutan memori rilis.

InterlockedDecrement16NoFence

Penurunan (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedDecrementNoFence64

Penurunan (berkurang satu) nilai variabel 64-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeNoFence

Mengatur variabel 64-bit ke nilai yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchange8

Mengatur variabel 8-bit ke nilai yang ditentukan sebagai operasi atomik.

InterlockedExchange16Acquire

Mengatur variabel 16-bit ke nilai yang ditentukan sebagai operasi atomik. Operasi dilakukan menggunakan memperoleh semantik pengurutan memori.

InterlockedExchange16NoFence

Mengatur variabel 16-bit ke nilai yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeNoFence64

Mengatur variabel 64-bit ke nilai yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangePointerNoFence

Secara atomik bertukar sepasang alamat. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeAddNoFence

Melakukan penambahan atom dua nilai 32-bit. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeAddNoFence64

Melakukan penambahan atom dua nilai 64-bit. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedIncrementNoFence

Kenaikan (meningkat satu per satu) nilai variabel 32-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedIncrement16

Kenaikan (meningkat satu per satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik.

InterlockedIncrement16Acquire

Kenaikan (meningkat satu per satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi dilakukan menggunakan memperoleh semantik pengurutan memori.

InterlockedIncrement16Release

Kenaikan (meningkat satu per satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi dilakukan menggunakan semantik urutan memori rilis.

InterlockedIncrement16NoFence

Kenaikan (meningkat satu per satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedIncrementNoFence64

Kenaikan (meningkat satu per satu) nilai variabel 64-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOrNoFence

Melakukan operasi Atom OR pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOr8NoFence

Melakukan operasi Atom OR pada nilai karakter yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOr16NoFence

Melakukan operasi Atom OR pada nilai SHORT yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOr64NoFence

Melakukan operasi Atom OR pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedPushListSListEx

Menyisipkan daftar yang ditautkan dengan nyanyian di bagian depan daftar lain yang ditautkan dengan nyanyian. Akses ke daftar disinkronkan pada sistem multiprosesor. Versi metode ini tidak menggunakan konvensi panggilan __fastcall .

InterlockedXorNoFence

Melakukan operasi XOR atomik pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedXor8NoFence

Melakukan operasi XOR atomik pada nilai karakter yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedXor16NoFence

Melakukan operasi XOR atomik pada nilai SHORT yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedXor64NoFence

Melakukan operasi XOR atomik pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

Windows 7

Fungsi Baru

SetWaitableTimerEx

Mengaktifkan timer yang dapat ditunggu yang ditentukan dan menyediakan informasi konteks untuk timer.

TryAcquireSRWLockExclusive

Upaya untuk memperoleh kunci pembaca/penulis ramping (SRW) dalam mode eksklusif. Jika panggilan berhasil, utas panggilan mengambil kepemilikan kunci.

TryAcquireSRWLockShared

Upaya untuk memperoleh kunci pembaca/penulis ramping (SRW) dalam mode bersama. Jika panggilan berhasil, utas panggilan mengambil kepemilikan kunci.

Struktur Baru

REASON_CONTEXT

Berisi informasi konteks untuk timer yang diaktifkan dengan SetWaitableTimerEx.