机器学习方向函数式编程+多线程

机器学习方向函数式编程+多线程

2023年6月29日发(作者:)

机器学习⽅向函数式编程+多线程⽂章⽬录函数式编程(Functional Programming)基于lambda演算的⼀种编程⽅式程序中只有函数函数可以作为参数,也可以作为返回值纯函数式的编程语⾔: LISP Haskellpython函数式编程只是借鉴了函数式编程的⼀些特点讲解⾼阶函数匿名函数系统⾼阶函数lambda表达式函数: 最⼤程度复⽤代码存在问题: 如果函数很⼩,很短,代码会很啰嗦如果函数被调⽤的次数少,会造成资源内存浪费对于阅读者来说,会造成阅读流程的中断lambda表达式(匿名函数):⼀个表达式,函数体简单不是代码块,⽽仅仅是⼀个表达式可以有参数,也可以没有,如果有多个参数,需要⽤逗号隔开lambda表达式的⽤法以lambda开头紧跟其后的是⼀定的参数(可有可⽆)参数后⽤冒号和表达式分割开只是⼀个表达式,没有return⾼阶函数把函数作为参数使⽤的函数得出结论:函数名称是⼀个变量funB 和 funA只是两个名字不⼀样的函数,功能完全⼀样既然函数名称是⼀个变量,我们就可以把这个变量当成参数系统⾼阶函数 - map原意是映射,map(f,list)filter函数filter()函数,过滤掉不符合要求的元素filter(f,list)f 作⽤在每⼀个list 元素上, 如果是True ,则保留这个元素如果返回False , 则去除这个元素多线程 vs 多进程所有案例代码请在Github寻找程序:⼀堆代码以⽂本形式存⼊⼀个⽂档进程: 程序运⾏的⼀个状态包含地址空间,内存,数据栈等每个进程由⾃⼰完全独⽴的运⾏环境,多进程共享数据是⼀个问题线程⼀个进程的独⽴运⾏⽚段,⼀个进程可以由多个线程轻量化的进程⼀个进程的多个现成间共享数据和上下⽂运⾏环境共享互斥问题全局解释器锁(GIL)Python代码的执⾏是由python虚拟机进⾏控制在主循环中稚嫩更有⼀个控制线程在执⾏Python包thread:有问题,不好⽤,python3改成了_threadthreading: 通⾏的包案例01: 顺序执⾏,耗时⽐较长案例02: 改⽤多线程,缩短总时间,使⽤_thread案例03: 多线程,传参数threading的使⽤直接利⽤⽣成Thread实例1. t = (target=xxx, args=(xxx,))2. ():启动多线程3. (): 等待多线程执⾏完成4. 案例045. 案例05: 加⼊join后⽐较跟案例04的结果的异同守护线程-daemon如果在程序中将⼦线程设置成守护现成,则⼦线程会在主线程结束的时候⾃动退出⼀般认为,守护线程不中要或者不允许离开主线程独⽴运⾏守护线程案例能否有效果跟环境相关案例06⾮守护线程案例07守护线程线程常⽤属性tThread:返回当前线程变量ate:返回⼀个包含正在运⾏的线程的list,正在运⾏的线程指的是线程启动后,结束前的状态Count: 返回正在运⾏的线程数量,效果跟 len(ate)相同e: 给线程设置名字e: 得到线程的名字直接继承⾃直接继承Thread重写run函数类实例可以直接运⾏案例09案例10, ⼯业风案例共享变量共享变量: 当多个现成同时访问⼀个变量的时候,会产⽣共享变量的问题案例11解决变量:锁,信号灯,锁(Lock):是⼀个标志,表⽰⼀个线程在占⽤⼀些资源使⽤⽅法上锁使⽤共享资源,放⼼的⽤取消锁,释放锁案例12锁谁: 哪个资源需要多个线程共享,锁哪个理解锁:锁其实不是锁住谁,⽽是⼀个令牌线程安全问题:如果⼀个资源/变量,他对于多线程来讲,不⽤加锁也不会引起任何问题,则称为线程安全线程不安全变量类型: list, set, dict线程安全变量类型: queue⽣产者消费者问题⼀个模型,可以⽤来搭建消息队列,queue是⼀个⽤来存放变量的数据结构,特点是先进先出,内部元素排队,可以理解成⼀个特殊的list死锁问题, 案例14死锁问题, 案例14锁的等待时间问题, v15semphore允许⼀个资源最多由⼏个多线程同时使⽤案例 17Timer是利⽤多线程,在指定时间后启动⼀个功能可重⼊锁⼀个锁,可以被⼀个线程多次申请主要解决递归调⽤的时候,需要申请锁的情况案例18线程替代⽅案subprocess完全跳过线程,使⽤进程是派⽣进程的主要替代⽅案python2.4后引⼊multiprocessiong使⽤threadiing借⼝派⽣,使⽤⼦进程允许为多核或者多cpu派⽣进程,接⼝跟threading⾮常相似s新的异步执⾏模块任务级别的操作python3.2后引⼊多进程进程间通讯(InterprocessCommunication, IPC )进程之间⽆任何共享状态进程的创建直接⽣成Process实例对象, 案例19派⽣⼦类, 案例20在os中查看pid,ppid以及他们的关系案例21⽣产者消费者模型JoinableQueue案例22队列中哨兵的使⽤, 案例23哨兵的改进, 案例24

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687978279a62970.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信