优化抢票 加入Lock lock.acquire() 锁住 lock.release()释放锁头 进程锁把所著的代码编程串行, join 是把所有的子进程变成了串行。 队列 ipc机制 进程通讯 管道:pipe 基于共享的内存空间 队列:pipe+锁 queue ==put()==放东西 get.( ...
分类:
编程语言 时间:
2019-09-16 21:48:07
阅读次数:
128
[TOC] 队列、生产者消费者模型、初识线程 一、用进程锁来优化抢票小程序 1.1 进程锁 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端是没有问题的。而共享带来的是竞争,竞争带来的结果就是错乱,那就需要加锁处理来控制。 多个进程共享同一打印终端的时候,并发运行的话 ...
分类:
其他好文 时间:
2019-09-16 21:44:23
阅读次数:
106
(一)进程锁 抢票的例子: 结果: multipleprocessing.Lock 非递归的锁定对象,非常类似threading.Lock.一旦进程或线程获得了锁,后续尝试从任何进程或线程获取它,将被阻塞直到被释放; 任何进程或线程都可以释放它。 Lock支持上下文管理协议,可以在with中使用。 ...
分类:
编程语言 时间:
2019-09-16 10:20:03
阅读次数:
83
12306 项目传送门: py12306 项目传送门 ...
分类:
其他好文 时间:
2019-09-09 22:26:40
阅读次数:
79
原文: http://blog.gqylpy.com/gqy/229 " 一、锁机制: multiprocess.Lock 上篇博客中,我们千方百计实现了程序的异步,让多个任务同时在几个进程中并发处理,但它们之间的运行没有顺序。尽管并发编程让我们能更加充分的利用io资源,但是也 ...
分类:
编程语言 时间:
2019-08-19 10:03:27
阅读次数:
134
抢票线程使用同步块修改synchronized(this){};this锁定的就是这个对象的资源publicclassn{publicstaticvoidmain(String[]args)throwsInterruptedException{webwb=newweb();newThread(wb,"a").start();newThread(wb,"b").start();newThread(w
分类:
编程语言 时间:
2019-08-14 09:40:41
阅读次数:
103
并发:同一个对象对多个线程同时操作线程同步:一种等待机制,等待前面线程使用完再下一个线程使用线程同步形成条件:形成队列,加上锁机制(synchronized)同步块:synchronized(具体对象){代码};锁定资源,一个线程一个线程的使用抢票:publicclassn{publicstaticvoidmain(String[]args)throwsInterruptedException{w
分类:
编程语言 时间:
2019-08-13 22:36:16
阅读次数:
112
抢票案例:publicclassn{publicstaticvoidmain(String[]args)throwsInterruptedException{webwb=newweb();newThread(wb,"a").start();newThread(wb,"b").start();newThread(wb,"c").start();}}classwebimplementsRunnable
分类:
编程语言 时间:
2019-08-13 12:07:49
阅读次数:
85
并发编程 一,操作系统发展史 输入输出设备>>>:IO操作即(input和output) 手工操作穿孔卡片 批处理(磁带) 脱机批处理系统 手工操作穿孔卡片 批处理(磁带) 脱机批处理系统 一步步的优化,其实都是在提高计算机CPU利用率的问题(问题在于时串行并且没有空间上的复用) 多道技术 多个程序 ...
分类:
其他好文 时间:
2019-08-09 21:58:57
阅读次数:
130
继承Thread类创建多线程 实现Runnable接口创建多线程 实现Runnable接口相对于继承Thread类来说,适合多个相同线程处理同一个资源(如抢票)的情况,可以避免由Java的单继承带来的局限性。 实际应用中,使用实现runnable接口的方式创建多线程的情况要比继承Thread类更常见 ...
分类:
编程语言 时间:
2019-07-25 23:44:48
阅读次数:
114