100w并发产生唯一随机id
#coding=utf-8
import time
import base64
import getopt
import sys
import threading
import random
import string
import os
def base64_cal():
str = 'admin'
str = str.encode('utf-8')
# 加密
bs64 = base64.b64encode(str)
# 解密
debs64 = base64.b64decode(bs64)
print(debs64.decode("utf-8"))
# base32bit加密
bs32 = base64.b32encode(str)
debs32 = base64.b32decode(bs32)
print(debs32.decode("utf-8")) def enterParams():
opts, args = getopt.getopt(sys.argv[1:], '-h-c:f:', ['help', 'concurrent=', 'file='])
concurrent_data=None
filename=None
for opt_name, opt_value in opts:
print(opt_name,opt_value)
if opt_name in ('-h', '--help'):
usage()
sys.exit()
if opt_name in ('-c', '--concurrent'):
if type(opt_value).__name__=='str':
concurrent_data=opt_value
if opt_name in ('-f', '--file'):
filename = opt_value
# else:
# # return None
# raise TypeError("enter param {} not file's path".format(opt_value)) return concurrent_data,filename def usage():
str="--help:\n\t-c : concurrent TotalData\n\t -f: filename's path\n--example:" \
"\n\tpython testfile.py -c 1000000 -file=./res/testPython.txt"
print(str) class ConcurrentIdSample(threading.Thread):
def __init__(self,func,args=()):
self.func=func
self.args=args
threading.Thread.__init__(self)
def run(self):
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result
except Exception:
return None def func(*args):
# print(time.asctime())
return ''.join(random.sample(string.hexdigits,random.randint(*args))) def concurrent_execute(concurrent_data):
pool=[]
samplesList=[]
for i in range(concurrent_data):
thread_sample=ConcurrentIdSample(func,(16,20))
pool.append(thread_sample)
thread_sample.start()
for thread in pool:
thread.join()
samplesList.append(thread.get_result())
return samplesList def outPut():
st=time.time()
concurrent_data,filename=enterParams()
res=concurrent_execute(concurrent_data)
end=time.time()
during=end-st
print(len(res),"\nmake {} datas time cost {}".format(concurrent_data,during),'\n')
if __name__ == '__main__':
enterParams()
100w并发产生唯一随机id的更多相关文章
- 【高性能】生成唯一时间戳ID,1毫秒预计能生成1000个
凡事涉及到高性能貌似都是高大上的东西,所以嘛我也试试:其实这个时间戳ID的生成主要为了解决我们公司内部的券号生成,估计有小伙伴认为券号生成有这么麻烦嘛,搞个自增ID完全可以用起来,或者时间取毫微米时间 ...
- 可实现的全局唯一有序ID生成策略
在博客园搜素全局唯一有序ID,罗列出来的文章大致讲述了以下几个问题,常见的生成全局唯一id的常见方法 :使用数据库自动增长序列实现 : 使用UUID实现: 使用redis实现: 使用Twitter的 ...
- 生成随机id对比
生成随机id 最近公司的项目游戏生成的随机不重复id,重复概率有点大, 代码如下: private static int id = 0; public static int serverID = 0; ...
- 学习笔记找到多个具有相同 ID“_header”的控件,FindControl 要求控件具有唯一的 ID.
解决 找到多个具有相同 ID“_header”的控件,FindControl 要求控件具有唯一的 ID. private void DisplayHotBooks() { //获取 ...
- 生成唯一的id(转)
很多朋友都利用md5()来生成唯一的编号,但是md5()有几个缺点:1.无序,导致数据库中排序性能下降.2.太长,需要更多的存储空间.其实PHP中自带一个函数来生成唯一的id,这个函数就是uniqid ...
- extjs每一个组件要设置唯一的ID
extjs每一个组件要设置唯一的ID,否则会造成各种错误 EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel ...
- 用java生成32位全球唯一的id编号
GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义 ...
- js生成唯一的id
1.生成[0,1)的随机数的Math.random Math.random().toString().replace(".", "");// 生成唯一的id 2 ...
- ionic获取ios唯一设备id的解决方案
经常有朋友来问这个问题. 每次都去解释这个问题也浪费不少时间, 所以还是开一篇文章, 把这个问题说清楚吧. 先纠正一个误区吧: 有同学可以通过ionic natvie的device插件获取. 我们在文 ...
随机推荐
- ASP.NET Core Web API 路由的有效使用
ROUTING 在 .NET Core Web API 项目中,我们应该使用属性路由代替传统路由,这是因为属性路由可以帮助我们匹配路由参数名称与 Action 内的实际参数方法.另一个原因是路由参数的 ...
- JAVA中fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- Python - 将iterable拆分成等长的数据块
说明 看文档发现一个有趣的应用(利用zip函数) 例如[1, 2, 3, 4] --> [(1, 2), (3, 4)],拆分成长度为2的数据块 Code >>> a = [1 ...
- 【visio】跨职能流程图
归属于 流程图类别 相比于普通流程图,突出了参与流程的组织.部门之间的联系,形式化地说,它突出的是参与流程的对象之间的联系. 它除了表达基本流程,同时也能展示每个每个流程的归属方,让每个对象明确知道自 ...
- 基于Robot Framework的接口自动化测试
Robot Framework框架简介 Robot Framework框架是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD),使用的是关键字驱动的测试方法.它本身拥有强大的标准库,此外 ...
- Innovus 对multibit 的支持
如果在综合阶段没有做multibit merge, 或综合阶段由于缺失物理信息multibit cell merge 不合理,那就需要PR 工具做multibit merge 或split. Inno ...
- java爬虫出现java.lang.IllegalArgumentException: Illegal character in path at index 31
url地址中出现了空格,使用trim()函数去除空格就好了
- cs/bs
c(客户端)/s服务器:使用前必须安装,更新是,c s同时更新,不能跨频繁太,采用自由协议,相对来说安全. b(浏览器)/s:本质上还是cs ,只是使用了浏览器:如京东,淘宝.无需安装,客户端不需要更 ...
- shell脚本编程学习笔记(三)编写邮件报警脚本
一.shell编写邮件报警脚本 1.POSTFIX邮件服务器准备 a.首先卸载服务器上自带的sendmail rpm -qa sendmail* //查看安装的sendmail rpm -e send ...
- Spring Boot 如何动态切换数据源
本章是一个完整的 Spring Boot 动态数据源切换示例,例如主数据库使用 lionsea 从数据库 lionsea_slave1.lionsea_slave2.只需要在对应的代码上使用 Data ...