原子無符號整數API

模塊shared_atomic

class shared_atomic.atomic_uint.atomic_uint(value: int, mode: str = 'singleprocessing')

原子無符號整數提供原子操作,原子無符號整數必須不超過8字節

原子無符號整數的構造函數,原子無符號整數不能超過8字節

參數
  • value – 整數的初始值,如果超過8字節,會失敗。

  • mode – 原子無符號整數的共享模式,』singleprocessing’或者’s’是單進程模式,』multiprocessing’或者’m’是多進程模式在windows平臺上只支持單進程模式,設成’multiprocessing’或者’m’會被忽略。

get() int

獲取原子無符號整數的值,整數應該不長於8個字節,返回:原子整數的值

set(value: int)

設置原子無符號整數的值,整數應該不長於8個字節。

uint_add_and_fetch(n: int) int

原子增加和獲取

參數

n – 增加的數據

回傳

2個值的和

uint_and_and_fetch(n: int) int

原子’與’和獲取

參數

n – 原子’與’的另一個操作數

回傳

結果值

uint_compare_and_set(e: self_atomic_uint, n: int) bool

原子比較和設置,比較指針v和e指向的內容,如果相等,這個過程就是讀-修改-寫的操作,將n的內容寫入v,如果不相等,是隻讀操作,v的內容寫入e. :參數 v: 指針v, 參數e:指針e 參數n將要設置的值,返回:指針v和e指向的內容是否相等。

參數
  • e – e指針

  • n – 將要設置的值

回傳

指針v和指針e指向的值是否一樣

uint_fetch_and_add(n: int) int

原子增加和獲取

參數

n – 增加的數據

回傳

指針v指向的原值

uint_fetch_and_and(n: int) int

原子獲取和’與』

參數

n – 原子’與’的另一個操作數

回傳

結果

uint_fetch_and_nand(n: int) int

原子獲取和’與非』

參數

n – 『與非’操作的另一個操作數

回傳

結果

uint_fetch_and_or(n: int) int

原子獲取和’或』

參數

n – 『或’操作的另一個操作數

回傳

結果

uint_fetch_and_sub(n: int) int

原子減少和獲取

參數
  • n – 減少的數據

  • encoding – 字符集

回傳

指針v指向的原值

uint_fetch_and_xor(n: int) int

原子獲取和’異或』

參數

n – 異或的數據

回傳

結果

uint_get_and_set(n: int) int

原子獲取和設置

參數

n – 設置的數值

回傳

原值

uint_nand_and_fetch(n: int) int

原子’與非’和獲取

參數

n – 『與非’操作的另一個操作數

回傳

結果值

uint_or_and_fetch(n: int) int

原子’異或’和獲取

參數

n – 異或的數據

回傳

結果值

uint_shift(n: self_atomic_uint, r: self_atomic_uint)

3個指針之間兩兩交換值,將n值存入v然後將v存入r

參數
  • n – n指針

  • r – r指針

回傳

uint_store(n: self_atomic_uint)

原子存儲值

參數

n – 指向將要設置的值的指針

回傳

uint_sub_and_fetch(n: int) int

原子減少和獲取

參數

n – 減少的數據

回傳

兩個值的差值

uint_xor_and_fetch(n: int) int

原子’異或’和獲取

參數

n – 異或的數據

回傳

結果值

property value: int

獲取原子無符號整數的值,整數應該不長於8個字節,返回:原子整數的值

shared_atomic.atomic_uint.uint_add_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子增加和獲取

參數
  • v – 設置和獲取的指針

  • n – 增加的數據

回傳

2個值的和

shared_atomic.atomic_uint.uint_and_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’與’和獲取

參數
  • v – 需要’與’操作的原子整數指針

  • n – 原子’與’的另一個操作數

回傳

結果值

shared_atomic.atomic_uint.uint_compare_and_set(v: _cffi_backend._CDataBase, e: _cffi_backend._CDataBase, n: int) bool

原子比較和設置,比較指針v和e指向的內容,如果相等,這個過程就是讀-修改-寫的操作,將n的內容寫入v,如果不相等,是隻讀操作,v的內容寫入e. :參數 v: 指針v, 參數e:指針e 參數n將要設置的值,返回:指針v和e指向的內容是否相等。

shared_atomic.atomic_uint.uint_fetch_and_add(v: _cffi_backend._CDataBase, n: int) int

原子增加和獲取

參數
  • v – 需要增加的原子整數指針

  • n – 增加的數據

回傳

指針v指向的原值

shared_atomic.atomic_uint.uint_fetch_and_and(v: _cffi_backend._CDataBase, n: int) int

原子獲取和’與』

參數
  • v – 需要’與’操作的原子整數指針

  • n – 原子’與’的另一個操作數

回傳

結果

shared_atomic.atomic_uint.uint_fetch_and_nand(v: _cffi_backend._CDataBase, n: int) int

原子獲取和’與非』

參數
  • v – 需要’與非’的原子整數指針

  • n – 『與非’操作的另一個操作數

回傳

結果

shared_atomic.atomic_uint.uint_fetch_and_or(v: _cffi_backend._CDataBase, n: int) int

原子獲取和’或』

參數
  • v – 需要’或者’的原子整數指針

  • n – 『或’操作的另一個操作數

回傳

結果

shared_atomic.atomic_uint.uint_fetch_and_sub(v: _cffi_backend._CDataBase, n: int) int

原子減少和獲取

參數
  • v – 需要減少的原子整數指針

  • n – 減少的數據

  • encoding – 字符集

回傳

指針v指向的原值

shared_atomic.atomic_uint.uint_fetch_and_xor(v: _cffi_backend._CDataBase, n: int) int

原子獲取和’異或』

參數
  • v – 需要’異或’的原子整數指針

  • n – 異或的數據

回傳

結果

shared_atomic.atomic_uint.uint_get_and_set(v: _cffi_backend._CDataBase, n: int) int

原子獲取和設置

參數
  • v – 需要獲取和設置的原子整數指針

  • n – 設置的數值

回傳

原值

shared_atomic.atomic_uint.uint_nand_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’與非’和獲取

參數
  • v – 需要’與非’的原子整數指針

  • n – 『與非’操作的另一個操作數

回傳

結果值

shared_atomic.atomic_uint.uint_or_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’異或’和獲取

參數
  • v – 需要’異或’的原子整數指針

  • n – 異或的數據

回傳

結果值

shared_atomic.atomic_uint.uint_shift(v: _cffi_backend._CDataBase, n: _cffi_backend._CDataBase, r: _cffi_backend._CDataBase)

3個指針之間兩兩交換值,將n值存入v然後將v存入r

參數
  • v – v指針

  • n – n指針

  • r – r指針

回傳

shared_atomic.atomic_uint.uint_store(v: _cffi_backend._CDataBase, n: _cffi_backend._CDataBase)

原子存儲值

參數
  • v – 需要設置的原子整數指針

  • n – 指向將要設置的值的指針

回傳

shared_atomic.atomic_uint.uint_sub_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子減少和獲取

參數
  • v – 需要減少和獲取的原子整數指針

  • n – 減少的數據

回傳

兩個值的差值

shared_atomic.atomic_uint.uint_xor_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’異或’和獲取

參數
  • v – 需要’異或’的原子整數指針

  • n – 異或的數據

回傳

結果值

class shared_atomic.atomic_uint.atomic_uint(value: int, mode: str = 'singleprocessing')

原子無符號整數提供原子操作,原子無符號整數必須不超過8字節

原子無符號整數的構造函數,原子無符號整數不能超過8字節

參數
  • value – 整數的初始值,如果超過8字節,會失敗。

  • mode – 原子無符號整數的共享模式,』singleprocessing’或者’s’是單進程模式,』multiprocessing’或者’m’是多進程模式在windows平臺上只支持單進程模式,設成’multiprocessing’或者’m’會被忽略。

get() int

獲取原子無符號整數的值,整數應該不長於8個字節,返回:原子整數的值

set(value: int)

設置原子無符號整數的值,整數應該不長於8個字節。

uint_add_and_fetch(n: int) int

原子增加和獲取

參數

n – 增加的數據

回傳

2個值的和

uint_and_and_fetch(n: int) int

原子’與’和獲取

參數

n – 原子’與’的另一個操作數

回傳

結果值

uint_compare_and_set(e: self_atomic_uint, n: int) bool

原子比較和設置,比較指針v和e指向的內容,如果相等,這個過程就是讀-修改-寫的操作,將n的內容寫入v,如果不相等,是隻讀操作,v的內容寫入e. :參數 v: 指針v, 參數e:指針e 參數n將要設置的值,返回:指針v和e指向的內容是否相等。

參數
  • e – e指針

  • n – 將要設置的值

回傳

指針v和指針e指向的值是否一樣

uint_fetch_and_add(n: int) int

原子增加和獲取

參數

n – 增加的數據

回傳

指針v指向的原值

uint_fetch_and_and(n: int) int

原子獲取和’與』

參數

n – 原子’與’的另一個操作數

回傳

結果

uint_fetch_and_nand(n: int) int

原子獲取和’與非』

參數

n – 『與非’操作的另一個操作數

回傳

結果

uint_fetch_and_or(n: int) int

原子獲取和’或』

參數

n – 『或’操作的另一個操作數

回傳

結果

uint_fetch_and_sub(n: int) int

原子減少和獲取

參數
  • n – 減少的數據

  • encoding – 字符集

回傳

指針v指向的原值

uint_fetch_and_xor(n: int) int

原子獲取和’異或』

參數

n – 異或的數據

回傳

結果

uint_get_and_set(n: int) int

原子獲取和設置

參數

n – 設置的數值

回傳

原值

uint_nand_and_fetch(n: int) int

原子’與非’和獲取

參數

n – 『與非’操作的另一個操作數

回傳

結果值

uint_or_and_fetch(n: int) int

原子’異或’和獲取

參數

n – 異或的數據

回傳

結果值

uint_shift(n: self_atomic_uint, r: self_atomic_uint)

3個指針之間兩兩交換值,將n值存入v然後將v存入r

參數
  • n – n指針

  • r – r指針

回傳

uint_store(n: self_atomic_uint)

原子存儲值

參數

n – 指向將要設置的值的指針

回傳

uint_sub_and_fetch(n: int) int

原子減少和獲取

參數

n – 減少的數據

回傳

兩個值的差值

uint_xor_and_fetch(n: int) int

原子’異或’和獲取

參數

n – 異或的數據

回傳

結果值

property value: int

獲取原子無符號整數的值,整數應該不長於8個字節,返回:原子整數的值