原子有符号整数API:

模块shared_atomic

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

原子有符号整数提供原子操作,不应该超过8字节

原子有符号整数的初始化函数,不应该超过8字节

参数
  • value – 整数的初始值,如果超过8字节,会失败。

  • mode – 原子有符号整数的共享模式,’singleprocessing’或者’s’是单进程模式,’multiprocessing’或者’m’是多进程模式在windows平台上只支持单进程模式,设成’multiprocessing’或者’m’会被忽略。

get() int

获取原子整数的值,整数应该不长于8个字节,返回:原子整数的值

int_add_and_fetch(n: int) int

原子增加和获取

参数

n – 增加的数据

返回

2个值的和

int_and_and_fetch(n: int) int

原子’与’和获取

参数

n – 原子’与’的另一个操作数

返回

结果值

int_compare_and_set(e: self_atomic_int, n: int) bool

原子比较和设置,比较指针v和e指向的内容,如果相等,这个过程就是读-修改-写的操作,将n的内容写入v,如果不相等,是只读操作,v的内容写入e. :参数 v: 指针v, 参数e:指针e 参数n将要设置的值,返回:指针v和e指向的内容是否相等。

参数
  • e – e指针

  • n – 将要设置的值

返回

指针v和指针e指向的值是否一样

int_fetch_and_add(n: int) int

原子增加和获取

参数

n – 增加的数据

返回

指针v指向的原值

int_fetch_and_and(n: int) int

原子获取和’与’

参数

n – 原子’与’的另一个操作数

返回

结果

int_fetch_and_nand(n: int) int

原子获取和’与非’

参数

n – ‘与非’操作的另一个操作数

返回

结果

int_fetch_and_or(n: int) int

原子获取和’或’

参数

n – ‘或’操作的另一个操作数

返回

结果

int_fetch_and_sub(n: int) int

原子减少和获取

参数
  • n – 减少的数据

  • encoding – 字符集

返回

指针v指向的原值

int_fetch_and_xor(n: int) int

原子获取和’异或’

参数

n – 异或的数据

返回

结果

int_get_and_set(n: int) int

原子获取和设置

参数

n – 设置的数值

返回

原值

int_nand_and_fetch(n: int) int

原子’与非’和获取

参数

n – ‘与非’操作的另一个操作数

返回

结果值

int_or_and_fetch(n: int) int

原子’异或’和获取

参数

n – 异或的数据

返回

结果值

int_shift(n: self_atomic_int, r: self_atomic_int)

3个指针之间两两交换值,将n值存入v然后将v存入r

参数
  • n – n指针

  • r – r指针

返回

int_store(n: self_atomic_int)

原子存储值

参数

n – 指向将要设置的值的指针

返回

int_sub_and_fetch(n: int) int

原子减少和获取

参数

n – 减少的数据

返回

两个值的差值

int_xor_and_fetch(n: int) int

原子’异或’和获取

参数

n – 异或的数据

返回

结果值

set(value: int)

设置原子整数的值,整数应该长于8字节

property value: int

获取原子整数的值,整数应该不长于8个字节,返回:原子整数的值

shared_atomic.atomic_int.int_add_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子增加和获取

参数
  • v – 设置和获取的原子整数

  • n – 增加的数据

返回

2个值的和

shared_atomic.atomic_int.int_and_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’与’和获取

参数
  • v – 需要’与’操作的原子整数指针

  • n – 原子’与’的另一个操作数

返回

结果值

shared_atomic.atomic_int.int_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指向的内容是否相等。

参数
  • v – v指针

  • e – e指针

  • n – 将要设置的值

返回

指针v和指针e指向的值是否一样

shared_atomic.atomic_int.int_fetch_and_add(v: _cffi_backend._CDataBase, n: int) int

原子增加和获取

参数
  • v – 需要增加的原子整数指针

  • n – 增加的数据

返回

指针v指向的原值

shared_atomic.atomic_int.int_fetch_and_and(v: _cffi_backend._CDataBase, n: int) int

原子获取和’与’

参数
  • v – 需要’与’操作的原子整数指针

  • n – 原子’与’的另一个操作数

返回

结果

shared_atomic.atomic_int.int_fetch_and_nand(v: _cffi_backend._CDataBase, n: int) int

原子获取和’与非’

参数
  • v – 需要’与非’的原子整数指针

  • n – ‘与非’操作的另一个操作数

返回

结果

shared_atomic.atomic_int.int_fetch_and_or(v: _cffi_backend._CDataBase, n: int) int

原子获取和’或’

参数
  • v – 需要’或者’的原子整数指针

  • n – ‘或’操作的另一个操作数

返回

结果

shared_atomic.atomic_int.int_fetch_and_sub(v: _cffi_backend._CDataBase, n: int) int

原子减少和获取

参数
  • v – 需要减少的原子整数指针

  • n – 减少的数据

  • encoding – 字符集

返回

指针v指向的原值

shared_atomic.atomic_int.int_fetch_and_xor(v: _cffi_backend._CDataBase, n: int) int

原子获取和’异或’

参数
  • v – 需要’异或’的原子整数指针

  • n – 异或的数据

返回

结果

shared_atomic.atomic_int.int_get_and_set(v: _cffi_backend._CDataBase, n: int) int

原子获取和设置

参数
  • v – 需要获取和设置的原子整数指针

  • n – 设置的数值

返回

原值

shared_atomic.atomic_int.int_nand_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’与非’和获取

参数
  • v – 需要’与非’的原子整数指针

  • n – ‘与非’操作的另一个操作数

返回

结果值

shared_atomic.atomic_int.int_or_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’异或’和获取

参数
  • v – 需要’异或’的原子整数指针

  • n – 异或的数据

返回

结果值

shared_atomic.atomic_int.int_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_int.int_store(v: _cffi_backend._CDataBase, n: _cffi_backend._CDataBase)

原子存储值

参数
  • v – 需要设置的原子整数指针

  • n – 指向将要设置的值的指针

返回

shared_atomic.atomic_int.int_sub_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子减少和获取

参数
  • v – 需要减少和获取的原子整数指针

  • n – 减少的数据

返回

两个值的差值

shared_atomic.atomic_int.int_xor_and_fetch(v: _cffi_backend._CDataBase, n: int) int

原子’异或’和获取

参数
  • v – 需要’异或’的原子整数指针

  • n – 异或的数据

返回

结果值

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

原子有符号整数提供原子操作,不应该超过8字节

原子有符号整数的初始化函数,不应该超过8字节

参数
  • value – 整数的初始值,如果超过8字节,会失败。

  • mode – 原子有符号整数的共享模式,’singleprocessing’或者’s’是单进程模式,’multiprocessing’或者’m’是多进程模式在windows平台上只支持单进程模式,设成’multiprocessing’或者’m’会被忽略。

get() int

获取原子整数的值,整数应该不长于8个字节,返回:原子整数的值

int_add_and_fetch(n: int) int

原子增加和获取

参数

n – 增加的数据

返回

2个值的和

int_and_and_fetch(n: int) int

原子’与’和获取

参数

n – 原子’与’的另一个操作数

返回

结果值

int_compare_and_set(e: self_atomic_int, n: int) bool

原子比较和设置,比较指针v和e指向的内容,如果相等,这个过程就是读-修改-写的操作,将n的内容写入v,如果不相等,是只读操作,v的内容写入e. :参数 v: 指针v, 参数e:指针e 参数n将要设置的值,返回:指针v和e指向的内容是否相等。

参数
  • e – e指针

  • n – 将要设置的值

返回

指针v和指针e指向的值是否一样

int_fetch_and_add(n: int) int

原子增加和获取

参数

n – 增加的数据

返回

指针v指向的原值

int_fetch_and_and(n: int) int

原子获取和’与’

参数

n – 原子’与’的另一个操作数

返回

结果

int_fetch_and_nand(n: int) int

原子获取和’与非’

参数

n – ‘与非’操作的另一个操作数

返回

结果

int_fetch_and_or(n: int) int

原子获取和’或’

参数

n – ‘或’操作的另一个操作数

返回

结果

int_fetch_and_sub(n: int) int

原子减少和获取

参数
  • n – 减少的数据

  • encoding – 字符集

返回

指针v指向的原值

int_fetch_and_xor(n: int) int

原子获取和’异或’

参数

n – 异或的数据

返回

结果

int_get_and_set(n: int) int

原子获取和设置

参数

n – 设置的数值

返回

原值

int_nand_and_fetch(n: int) int

原子’与非’和获取

参数

n – ‘与非’操作的另一个操作数

返回

结果值

int_or_and_fetch(n: int) int

原子’异或’和获取

参数

n – 异或的数据

返回

结果值

int_shift(n: self_atomic_int, r: self_atomic_int)

3个指针之间两两交换值,将n值存入v然后将v存入r

参数
  • n – n指针

  • r – r指针

返回

int_store(n: self_atomic_int)

原子存储值

参数

n – 指向将要设置的值的指针

返回

int_sub_and_fetch(n: int) int

原子减少和获取

参数

n – 减少的数据

返回

两个值的差值

int_xor_and_fetch(n: int) int

原子’异或’和获取

参数

n – 异或的数据

返回

结果值

set(value: int)

设置原子整数的值,整数应该长于8字节

property value: int

获取原子整数的值,整数应该不长于8个字节,返回:原子整数的值