""" 抢票! 多个用户在同时读写同一个数据 """ from multiprocessing import Process,Lock import json,time,random # 查看余票 def show_ticket(name): time.sleep(random.randint(1,3)) with open(r"ticket.json","rt",encoding="utf-8&…
目录 一:进程理论知识 1.理论知识 二:什么是进程? 三:僵尸进程与孤儿进程 1.僵尸进程 四:守护进程 1.什么是守护进程? 2.主进程创建守护进程 3.守护进程 五:互斥锁(模拟多人抢票) 1.什么是是锁? 2.什么是互斥锁? 3.为什么要使用互斥锁? 4.常见问题 5.注意 6.Lock模块 7.互斥锁(模拟多人抢票) 8.总结(抢票系统)解析 六:IPC机制(进程间通信)--队列 1.队列概况 2.Queue概念介绍 3.注意 4.(消息队列)代码搭建 七:(IPC消息队列)实现进程通…
1.互斥锁: 互斥锁:Lock 原理就是把并发变成串行,一个一个运行,不错乱,但效率低 保证多个进程修改一块数据时,大家是一个一个修改,不错乱 mutex.acquire() mutex.release() from multiprocessing import Process,Lock import time def task(name,mutex): mutex.acquire() print('%s 1'%name) time.sleep(1) print('%s 2'%name) tim…
web worker工作原理图: 抢票系统思维导图: 思路:五个人(5个div窗口模拟)同时进行抢票,有百分之十的几率可以抢到票,抢到票后对应的窗口(即随机生成的数大于等于0小于9的情况)会编程天蓝色,没抢到票的窗口(即随机生成的数大于9小于100的情况)会变成红色 HTML源码: <!DOCTYPE html><html><head> <meta charset="utf-8"/> <title>html5拖拽效果</…
抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt {"count": 1} 并发运行,效率高,但竞争写同一文件,数据写入错乱,只有一张票,都卖成功给了10个人 #文件db.txt的内容为:{"count":1} #注意一定要用双引号,不然json无法识别 from multiprocessing import Process import time import json cla…
我们设置三个对象分别同时抢20张票,利用多线程实现. public class Web123506 implements Runnable{ private int ticteksNums=20;//票数 @Override public void run() { while (true){ if(ticteksNums<0){ break; } /* try { //睡眠 Thread.sleep(200); } catch (InterruptedException e) { e.print…
最近在做的两个项目,都需要使用Restful Api,接口的安全性和访问控制便成为一个问题,看了一下别家的API访问控制办法. 新浪的API访问控制使用的是AccessToken,有两种方式来使用该AccessToken: 1.API请求 URL 的后面加上一个AccessToken 2.Http头里面加一个字段AccessToken=xxx 这种AccessToken是写死在程序里面的,在每次请求的时候附带上,对于这种AccessToekn新浪那边有过期时间,过期之后就无法再使用了. 很明显这…
前言 快过年了,又到了一年抢票时.今年douba和douma计划要带着doudou回姥姥家.昨天在家用抢票软件居然发现了一个bug,那就是在猎豹抢票中跨站推荐的车票几天里一直是没有,但是在12306手动尝试不同的跨站可以买到票,怀疑是猎豹在处理车次信息的时候对于变化的车次没有考虑到所致.在文中以实际操作尝试对这个bug做个比较详细的描述,并加上一点定位和分析,希望可以帮助这款神器的使用者和开发者提供些有用信息.按照douma的指示,今天上班来中午吃完饭不休息了,匆匆写下发表出来,供其他焦急的抢票…
Python用上锁和解锁  lock lock.acquire lock.release 模拟抢火车票 import jsonimport timefrom multiprocessing import Process, Lock # with open('catalogue.json', 'w') as fp:# dic = {'total': 3}# json.dump(dic, fp) def check(buyers): with open('catalogue.json', mode=…
当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息!如果你刚掌握了Python基础,这将是个不错的小练习. 接口设计 一个应用写出来最终是要给人使用的,哪怕只是给你自己使用.所以,首先应该想想你希望怎么使用它?让我们先给这个小应用起个名字吧,既然及查询票务信息,那就叫它tickets好了.我们希望用户只要输入出发站,到达站以及日期就让就能获得想要的信息,所以…