【Python】进程-锁(1)
#第二题,做一个加减乘除的考试系统,自动出题,自动判对错,并统计结果,一次考试10道题
import random
symbols=["+","-","*","/"] total_count=0
correct_count=0
incorrect_count=0 while 1:
random_number1=random.randint(0,11)
random_number2=random.randint(0,11)
random_symbol=random.choice(symbols) if random_symbol=="/" and random_number2==0:
continue
elif random_symbol=="/" and random_number1%random_number2 !=0:
continue expression=str(random_number1)+" "+random_symbol+" "+str(random_number2)
answer=eval(expression) print expression,"= ",
while 1:
try:
user_answer=int(raw_input(""))
break
except:
print "input is not a number,try again" if user_answer==answer:
print "your answer is right"
correct_count+=1
total_count+=1
else:
print "your answer is wrong,the right answer is %s" %answer
incorrect_count+=1
total_count+=1
if total_count==3:
break print "correct answer is %s" %correct_count
print "incorrect answer is %s" %incorrect_count #第三题:计算一个二维矩阵的正对角线、反对角线、周边数之和
a=[ [1,2,3],
[4,5,6],
[7,8,9]
] #遍历正对角线
count=0
for i in range(len(a)):
for j in range(len(a[0])):
if i==j:
count+=a[i][j]
print count #遍历反对角线
#[0][2]
#[1][1]
#[2][0]
count=0
column=len(a[0])-1
for i in range(len(a)):
count+=a[i][column-i]
print count #周边元素和
#[0][0]
#[0][1]
#[0][2]
#[1][0]
#[1][2]
#[2][0]
#[2][1]
#[2][2]
count=0
for i in range(len(a)):
for j in range(len(a[0])):
if i==0 or i==len(a)-1 or j==0 or j==len(a[0])-1:
print i,j
count+=a[i][j]
print count #练习:加锁
from multiprocessing import Process,Lock
import time
def lock_lock(lock,num):
lock.acquire()
time.sleep(0.2)
print "hello Num: %s" %num
lock.release() if __name__=="__main__":
lock=Lock()
for num in range(20):
p=Process(target=lock_lock,args=(lock,num))
p.start() #练习:多进程写一个文件,加锁
from multiprocessing import Process,Lock
import time def write(lock,num):
lock.acquire()
with open("e:\\text40.txt","a+") as f:
f.write("wangjing:%s\n" %(num))
lock.release() if __name__=="__main__":
lock=Lock()
for i in range(5):
p=Process(target=write,args=(lock,i))
p.start()
p.join()
print "write file done" #练习:多把锁
import multiprocessing
import time
def worker(s, i):
s.acquire()
print(multiprocessing.current_process().name + " acquire")
time.sleep(i)
print(multiprocessing.current_process().name + " release")
s.release() if __name__ == "__main__":
# 设置限制最多3个进程同时访问共享资源
s = multiprocessing.Semaphore(3)
for i in range(5):
p = multiprocessing.Process(target = worker, args = (s, i * 2))
p.start()
【Python】进程-锁(1)的更多相关文章
- python 进程锁 生产者消费者模型 队列 (进程其他方法,守护进程,数据共享,进程隔离验证)
#######################总结######### 主要理解 锁 生产者消费者模型 解耦用的 队列 共享资源的时候 是不安全的 所以用到后面的锁 守护进程:p.daem ...
- python进程锁
import time import threading import multiprocessing lock = multiprocessing.RLock() def task(arg): pr ...
- python 进程锁
1. #_*_coding:utf-8_*_ from multiprocessing import Process,Lock import os,time def f(l,i): #加锁 l.acq ...
- 【python】-- 多进程的基本语法 、进程间数据交互与共享、进程锁和进程池的使用
多进程 进程之间是相互独立的,python是启动进程的时候,是启动的是原生进程.进程是没有GIL锁的,而且不存在锁的概念,进程之间的数据式不能共享的,而线程是可以的. 1.进程的定义 用mulipro ...
- Python并发编程(守护进程,进程锁,进程队列)
进程的其他方法 P = Process(target=f,) P.Pid 查看进程号 查看进程的名字p.name P.is_alive() 返回一个true或者False P.terminate( ...
- python网络编程-进程锁
一:进程锁的作用 进程锁是防止多进程并发执行在屏幕打印的时候,其他进程也输出数据到屏幕,而出现混乱现象. 比如:进程池中很多进程会向同一个日志文件中打印日志 二:代码 # -*- coding:utf ...
- Python并发编程-多进程进程锁
from multiprocessing import Process import json import time from multiprocessing import Lock def sho ...
- Python多进程-进程锁
多进程虽然不允许多个进程同时修改同一份数据,但是多进程也有锁,为了在屏幕上打印的时候不出现两个进程同时执行的显示错误 # -*- coding:utf-8 -*- __author__ = " ...
- python并发编程之进程1(守护进程,进程锁,进程队列)
进程的其他方法 P = Process(target=f,) P.Pid 查看进程号 查看进程的名字p.name P.is_alive() 返回一个true或者False P.terminate( ...
- python进程池和进程锁
1.进程锁:from multiprocessing import Process, Lock def f(l, i): l.acquire() print('hello world', i) l.r ...
随机推荐
- HBase之六:HBase的RowKey设计
数据模型 我们可以将一个表想象成一个大的映射关系,通过行健.行健+时间戳或行键+列(列族:列修饰符),就可以定位特定数据,Hbase是稀疏存储数据的,因此某些列可以是空白的, Row Key Time ...
- MRBS开源会议室预订系统安装
MRBS系统官方网址 https://mrbs.sourceforge.io/ 最近在找一份开源的会议室预订系统,找了很多种,ASP,PHP的,测试发现MRBS无疑是最好的.开源社区对其介绍如下:M ...
- zzw原创_oracle回收站相关操作知识
1.查询回收站状态语句 select * from user_recyclebin order by droptime desc 2.还原回收站 FLASHBACK TABLE << ...
- [CodeForces - 197B] B - Limit
B - Limit You are given two polynomials: P(x) = a0·xn + a1·xn - 1 + ... + an - 1·x + an and Q(x) = b ...
- 整合elk(2)(十三)
配置.启动kibana 到kibana的安装目录: 1 ./bin/kibana 默认配置即可. 访问localhost:5601,网页显示: 证明启动成功. 创建springboot工程 起步依赖如 ...
- 普通01背包问题(dp)
有n个物品,重量和价值分别为wi和vi,从这些物品中挑选出重量不超过W的物品,求所有挑选方案中物品价值总和的最大值 限制条件: 1 <= n <= 100; 1 <= wi,vi & ...
- js 敏感词过滤
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- day23-python操作数据库三
创建表import MySQLdb def connect_mysql(): db_config = { 'host': '192.168.1.5', 'port': 3306, 'user': 'w ...
- DBProxy 读写分离使用说明
美团点评DBProxy读写分离使用说明 目的 因为业务架构上需要实现读写分离,刚好前段时间美团点评开源了在360Atlas基础上开发的读写分离中间件DBProxy,关于其介绍在官方文档已经有很详细 ...
- 百度GIS API使用
按照惯例,先来一段"Hello World"级别的直观的效果 实现效果: 实现代码: (WEB工程下直接运行即可) <!DOCTYPE html> <html&g ...