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

郑州做网站优化公司友情链接还有用吗

郑州做网站优化公司,友情链接还有用吗,为什么要先创建站点后建立文件?能否改变两者的顺序?,怎么查寻一个网站做的竞价今日内容概要 进程基础(操作系统中的概念) 进程调度算法(四种算法) 进程的并行和并发的概念 同步异步阻塞非阻塞的概念 创建进程(进程类Process) Process类的参数 Process类的方法 如何开启多进程 基于TCP协议的高并发程序 进程基础 进程它是操作系统中最重要的概念…

今日内容概要

  • 进程基础(操作系统中的概念)

  • 进程调度算法(四种算法)

  • 进程的并行和并发的概念

  • 同步异步阻塞非阻塞的概念

  • 创建进程(进程类Process)

  • Process类的参数

  • Process类的方法

  • 如何开启多进程

  • 基于TCP协议的高并发程序

进程基础

进程它是操作系统中最重要的概念,也是最基本的一个概念
线程也是操作系统中的一个很重要的概念

进程和线程都是有操作系统来调度使用的,我们程序员是不能控制的,这里就设计到调度算法

什么是进程?什么是线程?什么是程序?
进程和程序是两码事、完全不一样
程序:其实是一个死的东西、一堆代码就是程序,他也没有生命周期
进程:它是有生命周期的,这个任务做完,进程就不存在了

在一个进程中,可以有多个线程,一个进程中只有一个线程,也是可以的。
一个进程中至少要有一个线程
进程和线程他们都是有操作系统来调度的,程序员级别是没办法来调度的,协程就是程序员级别的,协程的调度它就是有我们程序员自己来调度的,在操作系统中是没有协程这个概念的,是我们人为的抽象出来的

进程》》》线程》》》协程
消耗资源对比:进程》》》线程》》》协程

单个cpu一次只能运行一个任务

进程调度算法

cpu的工作机制:
     1.遇到I/O的时候,cpu会交出执行权限
     2.当cpu遇到耗时比较长的时候,也会自动交出执行权限,切换到其他任务

I/O密集型
    他会被时间所阻塞,不会占用大量的cpu资源,比如sleep(3)
计算机密集型
    不占用大量的时候, 会占用大量的cpu资源,这种情况就是计算机密集型,没有时间的大量消耗

for i in range(10000000):i+=1

一、先来先服务调度算法
二、短作业优先调度算法
三、时间片轮转法
四、多级反馈队列

进程的并行和并发概念

并行:统一时刻同时运行
如果cpu是单核的,同一时刻能不能做到同时执行多个任务,不能
如果是多核,就可以同一时刻做到
核是2,最多同一时刻最多执行2个任务
核是4,同一时刻最多执行4个任务

并发:一段时间内看起来是同时运行
    如果是单核的cpu,听课、看视频、浏览网页能不能一起操作,是可以的,cpu的切换达到的

同步 异步 阻塞和非阻塞

所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由*调用者*主动等待这个*调用*的结果。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

典型的异步编程模型比如Node.js

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程

如何创建进程

from multiprocessing import Process
def task():with open('a.txt','w',encoding='utf-8') as f:f.write('helloworld')if __name__ == '__main__': # windows平台上必须写在这个里面p = Process(target=task) # 实例出来一个进程类,让这个进程执行task任务p.start() # 真正的开始进程

process类参数

from multiprocessing import Processdef task(name, age, gender):print(name, age, gender)with open('a.txt', 'w', encoding='utf-8') as f:f.write('helloworld')"""现在这个写法还没有开启进程"""
"""Windows平台上必须写在这个里面"""
if __name__ == '__main__':"""group=None, target=None, name=None, args=(), kwargs={},*, daemon=None"""p = Process(target=task, name='process-2', args=(), kwargs={'name':'jerry', 'age':20, 'gender':'male'})  # 实例出来一个进程类, 让这个进程执行task任务p.start()  # 真正的开启进程# 操作系统是负责把这个进程开起来# 开启一个进程来执行task任务,真正是谁在执行这个任务,是线程,进程里面至少要有一个线程"""进程的几个属性:1. 进程名 2. 进程号pid kill """# 如何查看进程的名称print(p.name) # Process-1# 怎么改进程名字# p.name = '这是新的进程名'# print(p.name)  # 这是新的进程名

 

Process类的几个方法

from multiprocessing import Processimport time
def task(name, age, gender):print(name, age, gender)# with open('a.txt', 'w', encoding='utf-8') as f:#     f.write('helloworld')time.sleep(3)print("子进程的代码")"""现在这个写法还没有开启进程"""
"""Windows平台上必须写在这个里面"""
if __name__ == '__main__':"""group=None, target=None, name=None, args=(), kwargs={},*, daemon=None"""# 子进程  主进程"""只是通知操作系统去开进程,并不是立马把进程开起来,他是需要消耗一定的时间的,侧面的反应了开启进程其实消耗很大"""p = Process(target=task, name='process-2', args=(), kwargs={'name':'jerry', 'age':20, 'gender':'male'})  # 实例出来一个进程类, 让这个进程执行task任务p.start()  # 真正的开启进程# 操作系统是负责把这个进程开起来# 开启一个进程来执行task任务,真正是谁在执行这个任务,是线程,进程里面至少要有一个线程"""进程的几个属性:1. 进程名 2. 进程号pid kill """# 如何查看进程的名称# print(p.name) # Process-1# 怎么改进程名字# p.name = '这是新的进程名'# print(p.name)  # 这是新的进程名## 如何查看进程号# print(p.pid) # process id# print(p.is_alive()) # True# p.terminate() # 杀死进程,结束任务# import time# time.sleep(1)# print(p.is_alive())p.join() # 等待子进程的代码全部执行完毕,在走主进程的print("主进程的代码执行完毕")

如何开启多进程

多进程就意味着可以同时做多个任务嘛, 一个进程做一个任务,多个进程肯定是做多个任务
from multiprocessing import Processimport time
def task(name):# print(name)# with open('a.txt', 'a', encoding='utf-8') as f:#     f.write('helloworld')print("子进程")time.sleep(1)
if __name__ == '__main__':"""理论上你是可以一直开进程,单是你需要考虑资源的消耗情况"""start_time = time.time()ll = []for i in range(10):p=Process(target=task, kwargs={'name':'kevin'})p.start()# p.join() #ll.append(p)for j in ll:j.join()print("主进程, 总时间:", time.time() - start_time)

基于TCP协议的高并发程序

一个服务端不能够同时给多个客户端发送消息
import socket  # python提供的socket模块def task(conn):while True:try:# 异常了一个bug,粘包现象data = conn.recv(1024)  # 括号里面写的是接收的字节数,最多接收1024个字节if len(data) == 0:continueprint(data)  # 还是bytes类型# 服务端开始给客户端也发送一个数据conn.send(data.upper())except Exception as e:print(e)breakconn.close()from multiprocessing import Processif __name__ == '__main__':# 1. 买手机# SOCK_STREAM  ====> 代表的是TCP协议# socket.socket(socket.AF_INET, socket.SOCK_STREAM)# socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # udp协议server = socket.socket()  # 默认是TCP协议# 2. 买手机卡# '0.0.0.0'  =====> 代表允许任何的ip链接# server.bind(('0.0.0.0', 8000)) # 服务端绑定一个地址server.bind(('127.0.0.1', 8001))  # 服务端绑定一个地址# 3. 开机server.listen(1)  # 监听,半连接池print('服务端正在准备接收客户端消息:')while True:conn, client_addr = server.accept()  # 接收,  程序启动之后,会在accept这里夯住,阻塞p = Process(target=task, args=(conn,))p.start()

http://www.tj-hxxt.cn/news/526.html

相关文章:

  • 下一页p30seo黑帽有哪些技术
  • 一级a做爰片免费网站孕交视频教程网站排名怎么优化
  • 免费个人业务网站制作广州今日头条新闻最新
  • wordpress 最好的插件前端seo优化
  • wordpress读取新闻seo营销是什么
  • 网站开发选asp还是hph推广方案
  • 兰州做网站公司免费服务器
  • 社区网站开发进度表百度空间登录入口
  • 北京活动网站制作站外推广方式有哪些
  • app平台开发需要的资源与团队网站建设方案优化
  • 化工集团网站建设 中企动力seo推广知识
  • 衢州网站设计排名电商平台推广
  • 哈尔滨大型网站制作开发云搜索下载
  • 政府网站建设管理经验汇报材料网站更新seo
  • 莆田网站制作网站运营是做什么的
  • 上海网站设计厂家软文广告案例分析
  • 哪个网站做头像比较好百度推广一年收费标准
  • 重构网站软文广告文案
  • 天津是哪个省西安seo学院
  • 成都网站建设服务密需湖南岚鸿案例交换链接平台
  • 网站群信息管理系统个人怎么做网络推广
  • 某些网站网速慢seo推广公司价格
  • 政府网站建设 报价农产品网络营销方案
  • 阿里云 外贸网站免费源码网站
  • 淘宝上做的网站 域名到期可以自己续费吗网站建设的流程是什么
  • 根据网站软件做报告小学生一分钟新闻播报
  • 网站如何收录快平台推广费用
  • 网站seo自己怎么做h5页面制作平台
  • 深圳洛可可设计公司象山seo外包服务优化
  • 做外贸英文网站北京网络推广外包公司排行