最近自己写了一个线程池。 总的来说,线程池就是有一个任务队列,一个线程队列,线程队列不断地去取任务队列中的任务来执行,当任务队列中为空时,线程阻塞等待新的任务添加过来。 我是用queue来存放任务,vector存放thread*,然后用condition_variable 来设置线程阻塞和唤醒。 下 ...
分类:
编程语言 时间:
2020-05-03 15:02:49
阅读次数:
314
栈的实现 class Stack(): def __init__(self): self.items = [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek( ...
分类:
编程语言 时间:
2020-05-02 00:22:56
阅读次数:
106
Set ——sadd 添加元素到一个key中 ——smembers 获取一个key下的所有元素 ——srem 移除指定元素 ——sismemeber 返回某一个成员是否在集合中 ——scard 返回集合的数量 ——srandmember 随机返回一个元素 ——spop 随机返回并出栈一个元素 ——s ...
分类:
其他好文 时间:
2020-05-02 00:05:11
阅读次数:
68
除请求对象之外,还有一个 session 对象。它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥。 设置:session['username'] = 'xxx' 删除:session.pop('user ...
分类:
其他好文 时间:
2020-05-01 19:03:22
阅读次数:
61
创建的数组的两种方式 1. 第一种是使用Array构造函数,代码如下: 如果预先知道数组要保存的项目数目,也可以直接给函数传递该数量: ,这个20表示的数组的长度为20; 2. 第二种是数组字面量表示法,代码如下: 检测数组 1. 对于一个网页或者一个全局作用域而言,使用 就能得到满意的答案; 但是 ...
分类:
编程语言 时间:
2020-05-01 14:28:31
阅读次数:
56
数组的操作 push方法 1.功能:数组最后的位置新增 2.参数:要增加的数据,可以是多个 3.返回值:数组增加之后的长度 4.是否修改原数组:是 unshift方法 1.功能:数组开始的位置新增 2.参数:要增加的数据,可以是多个 3.返回值:数组增加之后的长度 4.是否修改原数组:是 pop方法 ...
分类:
编程语言 时间:
2020-05-01 10:39:59
阅读次数:
62
题目大意: 给定你一个由n个节点,m条边组成的图,再告诉你3个节点a,b,c和一个大小为m的数组p, 让你将p[i]赋值给每条边,使得a->b->c的路径长度最短。 链接:https://codeforces.com/contest/1343/problem/E 思路: 因为要使路径长度最短,所以边 ...
分类:
其他好文 时间:
2020-05-01 10:19:19
阅读次数:
53
定位内存地址的方法 and和or指令 and指令是按位与运算: 代表al中的值和数值00111011B进行按位与运算,然后将结果赋值给寄存器al。and指令可将操作对象的相应位设置为0,其他位不变,如将al的第6位设置为0: or指令是按位或运算,同样的它能将操作对象的对应位设置为1,如将al的第6 ...
分类:
其他好文 时间:
2020-04-30 23:21:44
阅读次数:
75
"简介" "内部结构分析" "LinkedList源码分析" "构造方法" "添加(add)方法" "根据位置取数据的方法" "根据对象得到索引的方法" "检查链表是否包含某对象的方法:" "删除(remove/pop)方法" "LinkedList类常用方法测试:" 简介 LinkedList是一 ...
分类:
其他好文 时间:
2020-04-30 15:22:46
阅读次数:
44
栈迁移 当我们的rop链过长时很可能栈空间不够,并且ebp之前的空间其实只是填充一些没什么用的数据 栈迁移机理 与传统的pop_ret类似,利用level_ret实现栈的迁移,都是寻找很小短的零碎代码,进行拼接,和拼积木很像。 level ret//拆解 mov ebp,esp//esp跟着ebp走 ...
分类:
其他好文 时间:
2020-04-30 13:27:11
阅读次数:
109