python--操作系统介绍,进程的创建(并发)

一 .  操作系统的作用:

  1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口
  2:管理、调度进程,并且将多个进程对硬件的竞争变得有序

二 多道技术:

  所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

  1.产生背景:针对单核,实现并发
  ps:
  现在的主机一般是多核,那么每个核都会利用多道技术有4个cpu,
  运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个cpu中的任意一个,具体由操作系统调度算法决定。

  2.空间上的复用:如内存中同时有多道程序
  3.时间上的复用:复用一个cpu的时间片
  强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样才能保证下次切换回来时,
  能基于上次切走的位置继续运行

三 multiprocess 的简单应用

import time
from multiprocessing import Process
def func1():
    print(‘我是大帅哥‘)
    time.sleep(1)
    print(‘我是宇宙无敌大帅哥‘)
    time.sleep(3)
    print(‘人称北京吴彦祖‘)
def func2():
    time.sleep(3)
    print(‘斯嘉丽.约翰逊是大美女‘)
if __name__ == ‘__main__‘:  # 必须用main
    f1 = Process(target=func1) # 后面不能用()
    f2 = Process(target=func2)
    f1.start()
    f2.start()

  在进程(process)里面必须用  main 因为当执行start的时候相当于复制了一下子进程,并且是以import形式复制的,如果不main 就相当于进行了递归.

四 进程的两种传参方式

  1.

import time
from multiprocessing import Process
def f1(n):
    time.sleep(2)
    print(f‘我是{n}号大帅哥‘)
if __name__ == ‘__main__‘:
    for i in range(10):
        p1 = Process(target=f1, args=(i,))  # args里面是元组,i 是实参,n 是形参
        p1.start()

  2.

from multiprocessing import Process
class MyProcess(Process):
    # 要想使类中的init功能需要继承父类的init,在添加新功能
    def __init__(self,n):
        # 要执行process
        super().__init__()
        self.n = n
    def run(self):
        print(‘宝宝and%s不可告人的事情‘%self.n)
if __name__ == ‘__main__‘:
    p1 = MyProcess(‘高望‘)
    p1.start()

五 join方法

import time
from multiprocessing import Process
def f1():
    time.sleep(2)
    print(‘xxxx‘)
def f2():
    time.sleep(2)
    print(‘ssss‘)
if __name__ == ‘__main__‘:
    p1 = Process(target=f1,)
    p1.start()
    p1.join()  # 主进程等待子进程运行完才继续执行
    print(‘开始p2拉‘)
    p2 = Process(target=f2,)
    p2.start()
    p2.join()
    print(‘我要等了...等我的子进程...‘)
    # time.sleep(3)
    print(‘我是主进程!!!‘)

原文地址:https://www.cnblogs.com/uiys/p/10673234.html

时间: 2024-10-10 22:57:00

python--操作系统介绍,进程的创建(并发)的相关文章

python之操作系统介绍,进程的创建

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控制输入与输出设备.操作网络与管理文件系统等基本事务.操作系统也提供一个让用户与系统交互的操作界面. 操作系统简单介绍: 多道程序设计技术 空间复用 时间复用 进程之间是空间隔离的 分时系统 实时系统 通用操作系统 并发:伪并行,看着像同时运行,其实是任务之间的切换(遇到io切换的会提高代码效率) ,

python之路--操作系统介绍,进程的创建

一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬.软件资源.当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序. 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术有4个cpu, 运行于cpu1的某个程序遇到io

Linux 下进程操作,----进程的创建与控制

---恢复内容开始--- 进程是一个程序一次执行的过程,是操作系统动态执行的基本单元. 进程的概念主要有两点:第一,进程是一个实体.每个进程都有自己的虚拟地址空间,包括文本区.数据区.和堆栈区.文本区域存储处理器执行的代码:数据区存储变量和动态分配的内存:堆栈区存储着活动进程调用的指令和本地变量.第二,进程是一个"执行中的程序",它和程序有本质区别.程序是静态的,它是一些保存在磁盘上的指令的有序集合:而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建.调度和消亡的过程,

python多进程,进程迭代创建,造成电脑死机的问题解决

import os import threading import multiprocessing # worker function def worker(sign, lock): lock.acquire() print(sign, os.getpid()) lock.release() if __name__ == '__main__': print('Main:',os.getpid()) # Multi-thread record = [] lock = threading.Lock(

sq注入与python操作mysql

mysq注入 就是利用mysql 语法 使其 查询条件永远为真 解决方案 让mysql帮我们拼接 import pymysql conn = pymysql.connect(host='127.0.0.1', user='root', password="123", database='day43') cur = conn.cursor() user = "akhksh' or 1=1 ;-- " password = '*******' sql = "s

操作系统介绍-操作系统历史,IO,进程的三态,同步异步阻塞非阻塞

1.操作系统历史 2.进程,IO,同步异步阻塞非阻塞 操作系统历史: 手工操作: 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念. 手工操作方式两个特点: (1)用户独占全机.不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低. (2)CPU 等待手工操作.CPU的利用不充分. 批处理-磁带操作: 主机与输入机之间增加一个存储设备--磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入

Python3标准库:threading进程中管理并发操作

1. threading进程中管理并发操作 threading模块提供了管理多个线程执行的API,允许程序在同一个进程空间并发的运行多个操作. 1.1 Thread对象 要使用Thread,最简单的方法就是用一个目标函数实例化一个Thread对象,并调用start()让它开始工作. import threading def worker(): """thread worker function""" print('Worker') threads

python学习之进程线程学习一

一.概念 进程: 未完成任务而执行一堆代码的过程,进程是任务,真正执行进程的是cpu 并行: 多个cpu同时运行 并发: 单个cpu分时操作,利用单cpu 的多道技术,看起来像是程序同时运行,其实是分时段运行, 只不过cpu切换速度比较快,并行也属于并发. 多道技术:内存中同时存入多道(多个)程序,cpu从一个进程快速切换到另外一个,使每个进程各 自运行几十或几百毫秒,这样,虽然在某一个瞬间,一个cpu只能执行一个任务,但在1秒内,cpu却 可以运行多个进程,这就给人产生了并行的错觉,即伪并发,

python线程、进程和协程

链接:http://www.jb51.net/article/88825.htm 引言 解释器环境:python3.5.1 我们都知道python网络编程的两大必学模块socket和socketserver,其中的socketserver是一个支持IO多路复用和多线程.多进程的模块.一般我们在socketserver服务端代码中都会写这么一句: server = socketserver.ThreadingTCPServer(settings.IP_PORT, MyServer) Threadi