Python之路PythonThread,第四篇,进程4

python3  进程4

进程间同步互斥方法:

from multiprocessing import Lock

创建 进程锁对象

lock = Lock()

lock.acquire()  给临界区上锁

lock.release() 给临界区解锁

说明:1,具体实现上 acquire() 为一个条件阻塞函数;

2,当有任意一个进程先进行了acquire操作后,其他进程再企图进行acquire操作时就会阻塞,直到lock对象被release后其他进程CIA可以进行下次

acquire操作;

with lock: 也可以实现加锁,解锁

线程:

1,线程也可以使用计算机的多核资源,也是多任务编程方式之一;

2, 线程又称为轻量级的进程,在并发上和进程相同,但是在创建时销毁资源少;

说明:1,一个进程中可以包含多个线程,这个多个线程共享进程的资源;

2, 多个线程因为共享进程的资源,所以在通信上往往采用全局变量的方式;

3,线程也有自己特有的资源,比如TTD指令集等;

多进程和多线程的区别和联系:

1,多进程和多线程都是多任务编程方式,都可以使用计算机多核;

2,进程的创建要比线程消耗更多的资源;

3,进程的空间独立数据更安全,有专门的进程间通信方式进行交互;

4,一个进程包含多个线程,所以线程共享进程资源,没有专门的通信方式,依赖全局变量进行通信。 往往需要使用同步互斥机制,逻辑需要考虑更多;

5,进程线程都有自己特有的资源,多个关联任务的时候使用多线程资源消耗更少; 如果是多个无关联任务也不适用全部都使用线程;

原文地址:https://www.cnblogs.com/weizitianming/p/9196017.html

时间: 2024-08-29 22:39:56

Python之路PythonThread,第四篇,进程4的相关文章

Python之路【第四篇】:模块

什么是模块: 模块就是一个功能的集合. 模块就和乐高积木差不多,你用这些模块组合出一个模型,然后也可以用这个模块加上其他的模块组合成一个新的模型 模块的种类: 1.内置模块(python自带的比如os.file等模块) 2.自定义模块,自己写的模块 3.第三方模块 模块的导入: import module from module.xx.xx import xx from module.xx.xx import xx as rename from module.xx.xx import * 内置模

Python之路【第四篇】:Python基础(19)——装饰器

#普通装饰器# (@+函数名),需要记住关键两点:#功能:#1.自动执行outer函数,并且将其下面的函数名f1当作参数传递#2.将outer函数的返回值,重新赋值给f1 # #装饰器必备# ####第一:函数名和执行函数##### def foo(): #创建函数# print('hello') #函数体# foo #表示是函数名,代指整个函数# foo() #表示执行f00函数# # 输出:hello # ####第二:函数被重新定义#### def foo():# print("foo1&

【Python之路】第四篇--Python基础之函数

三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 "值1" 赋值给result变量,否则,将"值2"赋值给result变量 基本数据类型补充 set set集合,是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iterable) ->

Python之路,第四篇:Python入门与基础5

python 循环语句 作用:  根据一定的条件,重复的执行一个或多个语句 两种循环语句: while 语句 for 语句 while 语句: 语法: while    真值表达式: 语句1 ... else: 语句2 ... 语法说明: else子句可以省略 执行顺序: (1) 先判断真值表达式是否为True (2)如果第1步为True,则执行语句1后跳到第1步,否则跳到第3步: (3)执行else 子句 (4)结束 while 语句的执行 >>> n = 1 >>>

Python之路(第十四篇)os模块

一.os模块 1.os.getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) import os print(os.getcwd()) 2.os.chdir(path) 改变当前工作目录,os.chdir()参数为路径 import os print(os.getcwd()) print(os.chdir(r"d:\python\exercise\test_package\a")) print(os.getcwd()) 输出结果 D:\06python\exe

Python之路【第四篇】python基础 之基本数据类型之集合

基本数据类型之集合 set set集合,是一个无序且不重复的元素集合 1 # set 不允许重复的集合 set允许重复的列表但是集合是无序的 2 #例如 3 # s = {1,23,23,4,55,55} 4 # print(s) # 结果 {1, 4, 23, 55} 5 6 # 1.创建 7 # s = set() 8 # s = {11,22,33,44} 9 10 # 2.转换 11 # l = list() 12 # s = set() #创建集合 13 # s = set([11,2

Python之路【第七篇】:线程、进程和协程

Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time   def show(arg):     time.sleep(1)     print 'thread'+str(arg)   for i in

Python之路【第八篇】:堡垒机实例以及数据库操作

Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: + import paramiko transport = paramiko.Transport(('hostname', 22)) transport.connect(username='wupeiqi', password='123') ssh

Python之路【第六篇】:socket

Python之路[第六篇]:socket Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭

Python之路【第三篇】:Python基础(二)

Python之路[第三篇]:Python基础(二) 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作.