当前位置: 首页 > news >正文

网站雪花特效/经典营销案例分析

网站雪花特效,经典营销案例分析,网页制作工具按其制作方式分不包括下列的,凡科建站官网 网络服务一. 进程的其他方法进程id, 进程名字, 查看进程是否活着(is_alive()), terminate()发送结束进程的信号import timeimport osfrom multiprocessing import Processdef f1():print(子进程的pid,os.getpid())print(降龙十八掌天下第一)def f2():print(六脉神剑举世无双)if __name_…

一. 进程的其他方法

进程id, 进程名字, 查看进程是否活着(is_alive()), terminate()发送结束进程的信号

48304ba5e6f9fe08f3fa1abda7d326ab.png

import time

import os

from multiprocessing import Process

def f1():

print('子进程的pid',os.getpid())

print('降龙十八掌天下第一')

def f2():

print('六脉神剑举世无双')

if __name__ == '__main__':

p1 = Process(target=f1,name='我是进程1')

p2 = Process(target=f2,)

p1.start()

p2.start()

print(p1.name) # 我是进程1

print('子进程的pid',p1.pid)

print('父进程的id',os.getpid())

def f1():

time.sleep(3)

print('子进程1号')

if __name__ == '__main__':

p = Process(target=f1,)

p.start()

print(p.is_alive()) # True, 判断进程是否活着

p.terminate() # 给系统发送一个结束进程的信号

time.sleep(0.5) # 为了让避免并发导致的下面结果不准

print(p.is_alive()) # False

48304ba5e6f9fe08f3fa1abda7d326ab.png

二 . 僵尸进程和孤儿进程(了解)

僵尸进程可以理解为一些进程垃圾, 没有实际作用, 但是在占用着空间, 当这些进程的父进程正常关闭的时候会清楚这些僵尸进程,

孤儿进程也是一些进程垃圾, 只不过是当父进程非正常关闭的时候, 这些垃圾需要被最上级进程清理.

三 . 验证进程之间是空间隔离的

48304ba5e6f9fe08f3fa1abda7d326ab.png

from multiprocessing import Process

num = 100

def f1():

global num

num = 3

print('子进程中的num',num)

if __name__ == '__main__':

p = Process(target=f1,)

p.start() # 子进程中的num 3

p.join()

print('主进程中的num',num) # 主进程中的num 100

48304ba5e6f9fe08f3fa1abda7d326ab.png

73f152f67405393812ed1319519eb797.png

五 . 守护进程

48304ba5e6f9fe08f3fa1abda7d326ab.png

import time

from multiprocessing import Process

def f1():

time.sleep(1)

print('我是沉睡1秒的子进程')

time.sleep(3)

print('我是沉睡3秒子进程') # 打印不出来

def f2():

time.sleep(1)

print('我是普通的子进程')

if __name__ == '__main__':

p = Process(target=f1,)

# 将该进程设置为守护进程,必须写在start之前,

# 意思如果我的主进程代码运行结束了,你这个子进程不管运行到什么地方,都直接结束

p.daemon = True

p.start()

# 开启一个普通的子进程来验证一下守护进程的结束只和主进程的代码运行结束有关系,

# 而整个程序的结束需要主进程和普通的子进程的代码都运行结束才结束

p2 = Process(target=f2,)

p2.start()

time.sleep(2)

print('====','我是主进程')

# f1 只能打印出我是沉睡1秒的子进程,

# 主进程打印出==== 我是主进程,然后打印出我是普通的子进程

48304ba5e6f9fe08f3fa1abda7d326ab.png

六 . 进程锁(同步锁/互斥锁) (非常重要)

保证了数据安全,但是牺牲了效率,假锁的这段代码变成了(同步)串行执行的状态

进程锁就是为了保证数据安全, 比如说抢票如果只剩一张票的话,很多人同时访问都能看到只剩一张票,如果不用进程锁的数据就会发生错误.

48304ba5e6f9fe08f3fa1abda7d326ab.png

import time

from multiprocessing import Process,Lock

def show_ticket(i):

with open('ticket','r',encoding='utf-8') as f:

ticket_data = f.read() # 文件中的数据{'count': 1}

t_data = eval(ticket_data)

print('%s查询剩余票数为%s'%(i,t_data['count']))

def get_ticket(i,l1):

# 上锁,所有人只能抢这一个锁,只有抢到了才能继续执行,避免了由于并发导致的数据不准

l1.acquire()

with open('ticket', 'r', encoding='utf-8') as f:

ticket_data = f.read()

# print(ticket_data)

t_data = eval(ticket_data)

if t_data['count'] > 0:

t_data['count'] -= 1

print('%s抢票成功' % i)

time.sleep(0.2)

with open('ticket', 'w',) as f:

f.write(str(t_data))

else:

print('没票了!!!')

# 解锁,解锁之后才能重新抢锁

l1.release()

if __name__ == '__main__':

l1 = Lock()

for i in range(10):

p1 = Process(target=show_ticket,args=(i,))

p1.start()

for i in range(10):

p2 = Process(target=get_ticket,args=(i,l1) )

p2.start()

def f1(i,lic):

with lic: # 直接完成了上锁与解锁的过程

time.sleep(1)

print(i)

if __name__ == '__main__':

lic = Lock()

for i in range(5):

p = Process(target=f1, args=(i,lic))

p.start()

48304ba5e6f9fe08f3fa1abda7d326ab.png

六 . 队列

48304ba5e6f9fe08f3fa1abda7d326ab.png

from multiprocessing import Process,Queue

q = Queue(3)

q.put('乔峰')

q.put('段誉')

q.put('虚竹')

print(q.get())

print(q.get())

print(q.get())

try:

# 为了不等待直接执行下面的代码 如果是q.get()程序就会在这一直等着直到再次出现q.put()

q.get_nowait()

except:

print('队列拿空了')

print('还有东西吗?')

# 基于队列的通信

def f1(q):

q.put('约不约?')

if __name__ == '__main__':

q = Queue(3)

p = Process(target=f1,args=(q,))

p.start()

son_p_msg = q.get()

print('来自子进程的消息:', son_p_msg) # 来自子进程的消息: 约不约?

48304ba5e6f9fe08f3fa1abda7d326ab.png

七 .  基于队列的生产者消费者模型

48304ba5e6f9fe08f3fa1abda7d326ab.png

import time

from multiprocessing import Process,Queue,JoinableQueue

def producer(q):

for i in range(10):

time.sleep(0.2)

s = '大包子%s号' % i

print('新鲜出炉' + s)

q.put(s)

# 这个q.join 是 JoinableQueue 里面的join

q.join() #就等着task_done()信号的数量,和我put进去的数量相同时,才继续执行

print('所有的任务都被处理了,继续潜行吧骚年们')

def consumer(q):

while 1:

time.sleep(0.5)

baozi = q.get()

print(baozi+'被吃了')

q.task_done() #给队列发送一个取出的这个任务已经处理完毕的信号

if __name__ == '__main__':

q = JoinableQueue(30) #同样是一个长度为30的队列

pro_p = Process(target=producer,args=(q,))

con_p = Process(target=consumer,args=(q,))

pro_p.start()

# 为了让消费者吃完包子就走人

con_p.daemon = True

con_p.start()

# 这个join 是 process里面的join

pro_p.join()

print('主进程结束')

### 这两个join在两个模块里,功能不一样

48304ba5e6f9fe08f3fa1abda7d326ab.png

进程id,进程名字,查看进程是否活着is_alive()  terminate()发送结束进程的信号

http://www.lbrq.cn/news/1257085.html

相关文章:

  • 南昌商城网站建设/台州seo
  • 做网站需要什么学历/杭州网站搜索排名
  • wordpress单页下载/搜索引擎优化涉及的内容
  • 做电影资源网站服务器怎么选/宁波seo推广方式排名
  • 网站的建设/微营销推广软件
  • WordPress金融网站/重庆镇海seo整站优化价格
  • 用discuz做网站/外贸营销网站
  • 济南网站建设多少钱/手机搜索引擎排名
  • 安阳网站自然优化/东莞seoseo关键词排名优化
  • 动态网站设计用那个软件/seo兼职工资一般多少
  • 西宁网站建设公司排名/广州seo外包公司
  • 济南市做网站/电脑培训学校排名
  • 独立建站系统/太原百度关键词排名
  • 高端网站设计 公司新鸿儒/来宾seo
  • 网站开发税收分类/查网站排名
  • 网站建设谈客户说什么/网络营销推广目标
  • 上海做网站的公司名称/网红推广团队去哪里找
  • 中山网站排名/广告优化师培训
  • 宁夏企业网站建设/seo搜索引擎优化案例
  • 在线做头像的网站有哪些/亚马逊提升关键词排名的方法
  • 做pcr查基因序列的网站/360网站收录提交
  • 建设电影网站论文/seo技巧是什么
  • 广告营销有哪些/北京seo优化方案
  • 国外销售网站/如何做一个自己的网页
  • 员工支付做网站的费用分录/推广公司app主要做什么
  • 毕业设计网站建设题目/新网站怎么推广
  • seo网站模板/适合30岁女人的培训班
  • wordpress输入密码访问/seo标题优化导师咨询
  • php网站开发实用技术练习题/南昌seo专业团队
  • 阿里巴巴免费做国际网站/站长统计幸福宝下载
  • 检索召回率优化探究四:基于LangChain0.3集成Milvu2.5向量数据库构建的智能问答系统
  • javacc学习笔记 02、JavaCC 语法描述文件的格式解析
  • 【Java】使用FreeMarker来实现Word自定义导出
  • Java 大视界 -- Java 大数据机器学习模型在金融市场情绪分析与投资决策辅助中的应用(379)
  • 大屏项目展示
  • kafka 是一个怎样的系统?是消息队列(MQ)还是一个分布式流处理平台?