flask --- 04 . 偏函数, 线程安全,栈堆,
一.偏函数(partial)
①第一种
结果为:
② 第二种
二.线程安全
将空间转换成时间
问题: 1秒钟打印所有结果
- threading.current_thread().ident :线程ID
①不安全示例
- import time
- from threading import Thread
- import threading
- class Foo(object):
- pass
- foo = Foo()
- def add(i):
- foo.num = i
- time.sleep()
- print(foo.num,i,threading.current_thread().ident,foo)
- for i in range():
- task = Thread(target=add,args=(i,))
- task.start()
结果为:
②线程安全 (local)
- import time
- from threading import Thread
- import threading
- from threading import local
- class Foo(local):
- pass
- foo = Foo()
- def add(i):
- foo.num = i
- time.sleep()
- print(foo.num,i,threading.current_thread().ident,foo)
- for i in range():
- task = Thread(target=add,args=(i,))
- task.start()
结果为:
三.堆栈(简化版)
- 堆:
- 先进先出,后进后出
- 栈:
- 先进后出,后进先出
栈示例:
- import time
- # stack = [] # [request1,session1],[r2,s2],[r3,s3]
- from threading import local,Thread
- import threading
- class MyLocalStack(local):
- stack = {}
- pass
- mls = MyLocalStack()
- def ts(i):
- a = threading.current_thread().ident #线程ID
- mls.stack[a] = [f"r{i+1}",f"s{i+1}"] # 存入
- time.sleep()
- print(mls.stack[a].pop(),mls.stack[a].pop(),a)
- # time.sleep()
- mls.stack.pop(a) #取出
- print(mls.stack , a)
- for i in range():
- task = Thread(target=ts,args=(i,))
- task.start()
四. 面向对象的特殊成员
- __call__ : 对象( ) 时,会自动执行
- __setattr__ : 对象.key值 = value值 时自动执行
- __getattr__ : 对象. key值 时自动执行
结果为:
flask --- 04 . 偏函数, 线程安全,栈堆,的更多相关文章
- 4.1 python类的特殊成员,偏函数,线程安全,栈,flask上下文
目录 一. Python 类的特殊成员(部分) 二. Python偏函数 1. 描述 2. 实例一: 取余函数 3. 实例二: 求三个数的和 三. 线程安全 1. 实例一: 无线程,消耗时间过长 2. ...
- 栈 堆 stack heap 堆内存 栈内存 内存分配中的堆和栈 掌握堆内存的权柄就是返回的指针 栈是面向线程的而堆是面向进程的。 new/delete and malloc/ free 指针与内存模型
小结: 1.栈内存 为什么快? Due to this nature, the process of storing and retrieving data from the stack is ver ...
- 学习pthreads,管理线程的栈
进程的地址空间分成代码段,静态数据段,堆和栈段.线程栈的位置和大小是从它所属的进程的栈中切分出来的.每个栈必须足够大,以容纳所有对等线程的函数的执行以及它们将会调用的例程链.或许你会问为什么要进行线程 ...
- 栈 堆 stack heap
点餐 做菜 Stack and Heap 堆和栈的区别 - Grandyang - 博客园 https://www.cnblogs.com/grandyang/p/4933011.html 在和计算机 ...
- flask 高级编程 上下文与栈(转)
转: https://www.cnblogs.com/wangmingtao/p/9372611.html 22.上下文与出入栈 22.1 请求过程 请求过来,flask会实例化一个Request C ...
- flask之分析线程和协程
flask之分析线程和协程 01 思考:每个请求之间的关系 我们每一个请求进来的时候都开一个进程肯定不合理,那么如果每一个请求进来都是串行的,那么根本实现不了并发,所以我们假定每一个请求进来使用的是线 ...
- Flask 之分析线程和协程
目录 flask之分析线程和协程 01 思考:每个请求之间的关系 02 threading.local 03 通过字典自定义threading.local 04 通过setattr和getattr实现 ...
- Java内存分析--栈--堆
Java内存分析--栈--堆 JVM的内存分析: 1.栈内存 1.连续的存储空间,遵循后进先出的原则. 2.每个线程包含一个栈区,栈区只保存基础数据类型的对象和自定义对象的引用. 3.每个栈中的数据都 ...
- linux查看修改线程默认栈空间大小(ulimit -s)
linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...
随机推荐
- java课程课后作业04之动手动脑
一.多层的异常捕获-1 先贴出代码: public class CatchWho { public static void main(String[] args) { try { try { thro ...
- php跨域发送请求原理以及同步异步问题
<script async type="text/javascript" src="http://lisi.com/data.php?flag=1"> ...
- react 路由导航栏 withRouter
codesandbox https://codesandbox.io/s/9l6prnyxjy app.js import React, { Component, Fragment } from &q ...
- Web 测试总结
一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直接输入特殊字符时,使 ...
- gnome-shell 扩展
application menu topicons plus dash to dock native window placement netspeed no topleft hot corner o ...
- 剑指offer——python【第15题】反转链表
题目描述 翻转一个链表 样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 思路 一种比较简单的方法是用“摘除法”.就是先新 ...
- C语言编程(多线程)
C语言中多线程编程包括的文件:#include<pthread.h>(linux环境下) pthread_t //线程函数返回类型 pthread_mutrex_t //互斥锁类型 int ...
- ASP.NET Core ResponseCaching:基于 VaryByHeader 定制缓存 Key
ASP.NET Core ResponseCaching 提供了缓存http响应内容的能力,通过它可以在本地内存中直接缓存http响应内容,这是速度最快的服务端缓存,省却了网络传输与生成响应内容的开销 ...
- ZOJ 4070 - Function and Function - [签到题][2018 ACM-ICPC Asia Qingdao Regional Problem M]
题目链接:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5840 Time Limit: 1 Second Mem ...
- 常用类枚举和DATE的介绍
1 常用类 日期时间类 时间戳的内容:就是距离特定时间的时间间隔.,本质上也是一种整形(long). 例如:计算机时间戳就是距离历元(1970-01-01 00:00:00:000)的时间间隔. 世界 ...