集合API¶
模块shared_atomic
原子集合提供原子操作,不应该超过8字节
原子集合的初始化函数,不应该超过8字节
- 参数
initial – 集合的初始值,如果初始值长于8字节,请指定截短后的长度否则会失败
mode – 原子集合的共享模式,’singleprocessing’或者’s’是单进程模式,’multiprocessing’或者’m’是多进程模式在windows平台上只支持单进程模式,设成’multiprocessing’或者’m’会被忽略。
encoding – ,字符集,默认使用’utf-8’
在单进程与多进程模式之间切换,原来的内容会被复制到新的共享数组中,因为windows平台上只有单进程模式,这个函数在windows上并不存在,其它进程或者线程无法感知这种改变
- 参数
newmode – 需要切换的模式,’m’ 或者 ‘multiprocessing’ 是多进程模式, ‘s’ or ‘singleprocessing’单进程模式. 默认值是多进程模式
- 返回
无
Function to decode the bytes to set
- 参数
bits_in_bytes – bytes needs to be decoded
encoding – character encoding
- 返回
the decoded set
function to encode the input_set with specific character encoding
- 参数
input_set – input set
encoding – character encoding
- 返回
(data in integer representation, total length in bits)
获取集合的整数表示,集合会被当成一个大的整数
- 返回
整数表示
原子获取集合
- 返回
集合
与get_int一致
修改集合当中字符串的字符集,如果原始空间不够,会增长字符串,如果8字节不够,它会失败
- 参数
newencode – 新楄码,像’utf-8’, ‘utf-16-le’
- 返回
无
原子比较和设置,比较自身和i,如果相等,这个过程就是读-修改-写的操作,将n的内容写入自身,如果不相等,是只读操作,自身的内容写入i.
- 参数
i – 与之比较的集合
n – another set to be ready to set to self if comparision return True
- 返回
如果自身与i相等返回真,否则返回假。
原子获取和设置。
- 参数
data – 新数据集
- 返回
原始数据集
设置集合的整数表示,整个集合当被当成一个大整数
- 返回
无
设置这个集合的值,如果新数据比原值占用的空间多,它会扩展集合空间,失去原子性,空间占用可以用self.size来表示
- 参数
data – input set
- 返回
无
3个指针之间两两交换值,将自己的值存入j然后将i存入自身
- 参数
i – 一个原子集合
j – 另一个原子集合
- 返回
无
将另一个集合的内容写入这个集合,如果另一个集合空间占用与这一个不同,函数会失败。
- 参数
i – 另一个集合用来设置自身值
- 返回
无
Function to finish the shift and add of the data prefix
- 参数
data_prefix – integer for the data_prefix
accumulate_length – total data length in bits accumulated so far
input_length – length of the data segment in bits
kind – sorts of data
- 返回
(data_prefix, accumulate_length)
与get_set和set_set一致