一.偏函数(partial)

  ①第一种

  结果为:

  ② 第二种

二.线程安全

    将空间转换成时间

  问题: 1秒钟打印所有结果

  1. threading.current_thread().ident :线程ID

  ①不安全示例

  1. import time
  2. from threading import Thread
  3. import threading
  4.  
  5. class Foo(object):
  6. pass
  7.  
  8. foo = Foo()
  9.  
  10. def add(i):
  11. foo.num = i
  12. time.sleep()
  13. print(foo.num,i,threading.current_thread().ident,foo)
  14.  
  15. for i in range():
  16. task = Thread(target=add,args=(i,))
  17. task.start()

  结果为:

  ②线程安全 (local)

  1. import time
  2. from threading import Thread
  3. import threading
  4.  
  5. from threading import local
  6.  
  7. class Foo(local):
  8. pass
  9.  
  10. foo = Foo()
  11.  
  12. def add(i):
  13. foo.num = i
  14. time.sleep()
  15. print(foo.num,i,threading.current_thread().ident,foo)
  16.  
  17. for i in range():
  18. task = Thread(target=add,args=(i,))
  19. task.start()

  结果为:

三.堆栈(简化版)

  1. 堆:
  2. 先进先出,后进后出
  3.  
  4. 栈:
  5. 先进后出,后进先出

  栈示例:

  1. import time
  2.  
  3. # stack = [] # [request1,session1],[r2,s2],[r3,s3]
  4.  
  5. from threading import local,Thread
  6. import threading
  7.  
  8. class MyLocalStack(local):
  9. stack = {}
  10. pass
  11.  
  12. mls = MyLocalStack()
  13.  
  14. def ts(i):
  15. a = threading.current_thread().ident #线程ID
  16. mls.stack[a] = [f"r{i+1}",f"s{i+1}"]  # 存入
  17. time.sleep()
  18. print(mls.stack[a].pop(),mls.stack[a].pop(),a)
  19.  
  20. # time.sleep()
  21. mls.stack.pop(a)    #取出
  22. print(mls.stack , a)
  23.  
  24. for i in range():
  25. task = Thread(target=ts,args=(i,))
  26. task.start()

四. 面向对象的特殊成员

  1. __call__ : 对象( ) 时,会自动执行
  1. __setattr__ : 对象.key = value 时自动执行
  1.  
  1. __getattr__ : 对象. key 时自动执行

  结果为:

flask --- 04 . 偏函数, 线程安全,栈堆,的更多相关文章

  1. 4.1 python类的特殊成员,偏函数,线程安全,栈,flask上下文

    目录 一. Python 类的特殊成员(部分) 二. Python偏函数 1. 描述 2. 实例一: 取余函数 3. 实例二: 求三个数的和 三. 线程安全 1. 实例一: 无线程,消耗时间过长 2. ...

  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 ...

  3. 学习pthreads,管理线程的栈

    进程的地址空间分成代码段,静态数据段,堆和栈段.线程栈的位置和大小是从它所属的进程的栈中切分出来的.每个栈必须足够大,以容纳所有对等线程的函数的执行以及它们将会调用的例程链.或许你会问为什么要进行线程 ...

  4. 栈 堆 stack heap

    点餐 做菜 Stack and Heap 堆和栈的区别 - Grandyang - 博客园 https://www.cnblogs.com/grandyang/p/4933011.html 在和计算机 ...

  5. flask 高级编程 上下文与栈(转)

    转: https://www.cnblogs.com/wangmingtao/p/9372611.html 22.上下文与出入栈 22.1 请求过程 请求过来,flask会实例化一个Request C ...

  6. flask之分析线程和协程

    flask之分析线程和协程 01 思考:每个请求之间的关系 我们每一个请求进来的时候都开一个进程肯定不合理,那么如果每一个请求进来都是串行的,那么根本实现不了并发,所以我们假定每一个请求进来使用的是线 ...

  7. Flask 之分析线程和协程

    目录 flask之分析线程和协程 01 思考:每个请求之间的关系 02 threading.local 03 通过字典自定义threading.local 04 通过setattr和getattr实现 ...

  8. Java内存分析--栈--堆

    Java内存分析--栈--堆 JVM的内存分析: 1.栈内存 1.连续的存储空间,遵循后进先出的原则. 2.每个线程包含一个栈区,栈区只保存基础数据类型的对象和自定义对象的引用. 3.每个栈中的数据都 ...

  9. linux查看修改线程默认栈空间大小(ulimit -s)

    linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...

随机推荐

  1. java课程课后作业04之动手动脑

    一.多层的异常捕获-1 先贴出代码: public class CatchWho { public static void main(String[] args) { try { try { thro ...

  2. php跨域发送请求原理以及同步异步问题

    <script async type="text/javascript" src="http://lisi.com/data.php?flag=1"> ...

  3. react 路由导航栏 withRouter

    codesandbox https://codesandbox.io/s/9l6prnyxjy app.js import React, { Component, Fragment } from &q ...

  4. Web 测试总结

    一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直接输入特殊字符时,使 ...

  5. gnome-shell 扩展

    application menu topicons plus dash to dock native window placement netspeed no topleft hot corner o ...

  6. 剑指offer——python【第15题】反转链表

    题目描述 翻转一个链表 样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 思路 一种比较简单的方法是用“摘除法”.就是先新 ...

  7. C语言编程(多线程)

    C语言中多线程编程包括的文件:#include<pthread.h>(linux环境下) pthread_t //线程函数返回类型 pthread_mutrex_t //互斥锁类型 int ...

  8. ASP.NET Core ResponseCaching:基于 VaryByHeader 定制缓存 Key

    ASP.NET Core ResponseCaching 提供了缓存http响应内容的能力,通过它可以在本地内存中直接缓存http响应内容,这是速度最快的服务端缓存,省却了网络传输与生成响应内容的开销 ...

  9. 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 ...

  10. 常用类枚举和DATE的介绍

    1 常用类 日期时间类 时间戳的内容:就是距离特定时间的时间间隔.,本质上也是一种整形(long). 例如:计算机时间戳就是距离历元(1970-01-01 00:00:00:000)的时间间隔. 世界 ...