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插件获取. 我们在文 ...
随机推荐
- js数组和对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Lindström–Gessel–Viennot lemma定理 行列式板子
https://blog.csdn.net/qq_37025443/article/details/86537261 博客 下面是wiki上的讲解,建议耐心地看一遍...虽然看了可能还是不懂 http ...
- JS json对象(Object)和字符串(String)互转方法
[JS json对象(Object)和字符串(String)互转方法] 参考:https://blog.csdn.net/wenqianla2550/article/details/78232706 ...
- 数据提取之JSON与JsonPATH
数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适 ...
- apache的下载
官网http://www.apache.org/ 首页第三行左右 点a number of third party vendors 再点第一个ApacheHaus 最后来到windows的下载页面 h ...
- JavaScript - what is "this"? this是什么?
https://fangyinghang.com/this-in-js/ Core func(p1, p2) // 等同于 func.call(undefined, p1, p2) this 就是ca ...
- __dirname和__filename和process.cwd()三者的区别
1.process cwd() 方法返回 Node.js 进程当前工作的目录 例:我在F:\自己的文件\自己在网上学习的知识点\node学习\node-API\process 这个文件加下面创建了一个 ...
- opencv python:图像金字塔
图像金字塔原理 expand = 扩大+卷积 拉普拉斯金字塔 PyrDown:降采样 PyrUp:还原 example import cv2 as cv import numpy as np # 图像 ...
- 吴裕雄 python 机器学习——模型选择数据集切分
import numpy as np from sklearn.model_selection import train_test_split,KFold,StratifiedKFold,LeaveO ...
- 分享Linux系统快速入门法
相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴趣 ...