work

30 python 并发编程之多线程

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-29 02:49:41
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 二 开启线程的两种方式 1 #方式一 2 from threading import Thread 3 import time 4 def sayhi(name): 5 time.sleep(2) 6 print('%s say hello' %name) 7 8 if __name__ == '__main__': 9 t=Thread(target=sayhi,args=('egon',)) 10 t.start() 11 print('主线程') 方法一 1 #方式二 2 from threading import Thread 3 import time 4 class Sayhi(Thread): 5 def __init__(self,name): 6 super().__init__() 7 self.name=name 8 def run(self): 9 time.sleep(2) 10 print('%s say hello' % self.name) 11 12

DAY9-python并发之多线程

有些话、适合烂在心里 提交于 2020-01-27 17:18:00
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 二 开启线程的两种方式 #方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print('%s say hello' %name) if __name__ == '__main__': t=Thread(target=sayhi,args=('egon',)) t.start() print('主线程') 方式一 方式一 #方式二 from threading import Thread import time class Sayhi(Thread): def __init__(self,name): super().__init__() self.name=name def run(self): time.sleep(2) print('%s say hello' % self.name) if __name__ == '__main__': t = Sayhi('egon') t

PHP Help Guideds

牧云@^-^@ 提交于 2020-01-26 19:29:40
how does php work with Apache? https://stillat.com/blog/2014/04/02/how-does-php-work-with-the-web-server-and-browser 来源: https://www.cnblogs.com/luoxuw/p/12234638.html

The Product-Minded Software Engineer

↘锁芯ラ 提交于 2020-01-26 13:29:43
转自 The Product-Minded Software Engineer Product-minded engineers are developers with lots of interest in the product itself. They want to understand why decisions are made, how people use the product, and love to be involved in making product decisions. They're someone who would likely make a good product manager if they ever decide to give up the joy of engineering. I've worked with many great product-minded engineers and consider myself to be this kind of developer. At companies building world-class products, product-minded engineers take teams to a new level of impact. Sherif Mansour, PM at

python装饰器学习笔记

夙愿已清 提交于 2020-01-25 05:59:20
python的一切皆是对象。 在 Python 中我们可以在一个函数中定义另一个函数: def hi ( name = "yasoob" ) : print ( "now you are inside the hi() function" ) def greet ( ) : return "now you are in the greet() function" def welcome ( ) : return "now you are in the welcome() function" print ( greet ( ) ) print ( welcome ( ) ) print ( "now you are back in the hi() function" ) hi ( ) #output:now you are inside the hi() function # now you are in the greet() function # now you are in the welcome() function # now you are back in the hi() function # 上面展示了无论何时你调用hi(), greet()和welcome()将会同时被调用。 # 然后greet()和welcome()函数在hi()函数之外是不能访问的,比如:

代理模式

落花浮王杯 提交于 2020-01-25 05:13:51
理解     用演员和经纪人来形容代理模式最恰当不过,一个演员每天要拍电影,拍广告,拍电视剧有很多事情要做,但是每天有很多人来找他谈合作,以及各种行程需要合理安排,如果这些全都要演员自己来弄肯定忙不过来,容易出错,所以就有了经纪人(代理人),这些代理人帮演员打理行程,应对合作商,演员只需要专心于演戏就好了。演员和经纪人之间其实就是代理模式。 作用     在我们写程序的时候也经常遇到,我们的业务代码负责业务流程的控制,但是除了业务流程有时候还有一些其他的事情,比如事务的管理,对象的创建之类的,这时就需要有一个代理类能帮业务代码处理这些工作,让业务代码专心于业务流程的处理,所以就需要代理模式了。 实现     代理模式分为静态代理和动态代理之分,静态代理指的是代理类通过硬编码来创建,比较简单,而动态代理指代理类在jvm运行过程中自动创建出来,需要使用java的代理包。 静态代理 定义接口: public interface Work { public void handWork ( int giveMoney ) ; } 构建被代理者: public class Worker implements Work { @Override public void handWork ( int giveMoney ) { System . out . println ( "hard

Python之并发编程-多线程

落爺英雄遲暮 提交于 2020-01-25 00:24:52
目录 一、threading模块介绍 二、使用说明 三、进一步介绍(守护线程,锁(互斥锁、递归锁),信号量,队列,event,condition,定时器)    1、守护线程    2、锁(互斥锁、递归锁)    3、信号量    4、队列    5、event    6、condition    7、定时器    8、补充:threading.local 四、线程池 一、threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接: https://docs.python.org/3/library/threading.html?highlight=threading# 理论: http://www.cnblogs.com/linhaifeng/articles/7430082.html 二、使用说明 1、方法说明 class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None) This constructor should always be called with keyword arguments. Arguments are: group should

How to kill process in SAP ?

╄→尐↘猪︶ㄣ 提交于 2020-01-24 23:50:44
方法1 > SM50 -> flag the process you want to kill -> go to PROCESS --> Cancel WITHOUT core 方法2 --> su – <SID>adm --> dpmon pf=<profilename> -->m -->p/L -->k -->work precess number -->yes 方法3 kill -9 PID 方法4 ?? SE38:RSBDCOS0, 点击执行,输入完整的命令: 比如: taskkill /pid XXX1 /F , 回车,执行完成。 来源: https://www.cnblogs.com/tingxin/p/12232674.html

线段树 & 题目

非 Y 不嫁゛ 提交于 2020-01-23 13:08:42
首先说下我写的线段树吧。 我是按照线段树【完全版】那个人的写法来写的,因为网上大多数题解都是按照他的写法来写。 确实比较飘逸,所以就借用了。 节点大小是maxn是4倍,准确来说是大于maxn的2^x次方的最小值的两倍。 lson 和 rson 用宏定义写了。因为是固定的量。 线段树不必保存自身的区间,因为一边传递过去的时候,在函数里就有区间表示,无谓开多些无用的变量。 pushUp函数,更新当前节点cur的值,其实就是,线段树一般都是处理完左右孩子,然后再递归更新父亲的嘛,这个pushUp函数就是用来更新父亲的。感觉不用这个函数更加清楚明了。 pushDown函数,在lazy--upDate的时候有用,作用是把延迟标记更新到左右节点。 多次使用sum不用清0,add要。build的时候就会初始化sum数据。但其他用法就可能要 1 #define lson L, mid, cur << 1 2 #define rson mid + 1, R, cur << 1 | 1 3 void pushUp(int cur) { 4 sum[cur] = sum[cur << 1] + sum[cur << 1 | 1]; 5 } 6 void pushDown(int cur, int total) { 7 if (add[cur]) { 8 add[cur << 1] += add[cur]

银行家算法

…衆ロ難τιáo~ 提交于 2020-01-22 10:06:12
在了解银行家算法之前,我们先了解一下 死锁 的概念和它的相关知识。 死锁 概念 :多个进程相互等待,互不相让,导致所有进程无限期等待。 死锁分为 资源死锁 和 通信死锁 。 资源死锁 :每个进程都在等待其他进程释放资源。资源死锁时最常见的死锁类型。 通信死锁 :由于信息丢失,导致通信双方互相等待对方发送消息。一般可以设置超时时间来解决。 资源死锁条件 1) 互斥条件 :一个进程不能被两个以上的进程同时占有。 2) 占有和等待 :已经得到某个资源的进程可以申请新的资源。 3) 不可抢占条件 :已经分配给一个进程的资源不能被强制性抢占,他只能被占有它的进程显式释放。 4) 环路等待 :死锁发生时,系统中一定有两个及两个以上的进程形成一条环路。 死锁处理 1)忽略问题。 2)检测死锁并恢复 3)避免死锁 4)防止死锁发生 今天我们要说的就是死锁避免的策略— 银行家算法 银行家算法是最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态的申请资源,但系统在进行资源分配之前,应该先计算此次分配资源的安全性,若果分配不会导致系统进入不安全状态,则分配,否则等待。 先说一下算法中需要的数据结构: 1.可利用资源向量 Available :他是一个一维数组。其中的每一个元素代表一类可利用的资源数目。它的数值会根据资源的分配和回收发生改变。比如Available[i]=k