信号量: 同进程的一样,Semaphore管理一个内置的计数器,每当调用acquire()时内置计数器-1,调用release()时内置计数器+1;计数器不能小于0;当计数器为0,acquire()将阻塞线程直到其他线程调用release()。 import time from threading ...
分类:
编程语言 时间:
2018-05-16 18:42:42
阅读次数:
250
进程锁 为了数据安全 # 锁 # 火车票 import json import time from multiprocessing import Process from multiprocessing import Lock # def show(i): # with open('ticket') ...
分类:
编程语言 时间:
2018-05-09 10:46:57
阅读次数:
175
一,环境 idea 二.什么是线程安全问题,为什么会有线程安全问题 线程安全问题产生于多个线程同时访问共享资源(通常查询不会产生) 三.举例 假如我现在想讲一个数循化加一,最终增加到1000.但是需要用5个线程来加 结果: 代码显示:最多会增加到1000循环就会结束那么为什么会出现1001呢!! 由 ...
分类:
编程语言 时间:
2018-05-06 20:12:07
阅读次数:
182
在这一篇文章中,我们主要来介绍多线程抓取数据。 多线程是以并发的方式执行的,在这里要注意,Python的多线程程序只能运行在一个单核上以并发的方式运行,即便是多核的机器,所以说,使用多线程抓取可以极大地提高抓取效率 下面我们以requests为例介绍多线程抓取,然后在通过与单线程程序比较,体会多线程 ...
分类:
编程语言 时间:
2018-04-30 13:34:22
阅读次数:
172
一、Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。 Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值 ...
分类:
其他好文 时间:
2018-04-26 11:57:05
阅读次数:
158
(二)和(三)不感兴趣的可以跳过,这里参考了《深入理解计算机系统》第一章和《Python核心编程》第四章 (一) 多线程编程 一个程序包含多个子任务,并且子任务之间相互独立,让这些子任务同时运行就是多线程编程。 (二) 进程 进程是操作系统对一个正在运行的程序的一种抽象(或者说进程指的就是运行中的程 ...
分类:
编程语言 时间:
2018-04-24 21:56:50
阅读次数:
251
MySQL复制功能使用三个线程实现,一个在主服务器上,另一个在从服务器上:Binlog(二进制日志)转储线程。主站创建一个线程,在从站连接时将二进制日志内容发送给从站。该线程可以在主服务器上的SHOW PROCESSLIST输出中标识为Binlog转储线程。二进制日志转储线程在主服务器的二进制日志上获取一个锁,用于读取要发送给从服务器的每个事件。一旦事件被读取,即使在事件被发送到从设备之前,锁也被
分类:
数据库 时间:
2018-04-21 11:20:16
阅读次数:
178
一、线程是什么? 程序执行流的最小单元,被称为轻量级线程 二、线程的5种状态 1、新建(NEW) 新建了一个线程 2、就绪(RUNNABLE) 调用start方法,处于待命阶段,只要得到军令(获得CPU时间片),立即执行命令(执行run方法) 3、运行(RUNNING) 拥有CPU时间片这段时间内, ...
分类:
编程语言 时间:
2018-04-03 17:19:54
阅读次数:
196
pThreads线程(二) 线程同步--互斥量/锁 互斥量(Mutex)是“mutual exclusion”的缩写。互斥量是实现线程同步,和保护同时写共享数据的主要方法。 互斥量对共享数据的保护就像一把锁。在Pthreads中,任何时候仅有一个线程可以锁定互斥量,因此,当多个线程尝试去锁定该互斥量 ...
分类:
编程语言 时间:
2018-03-21 14:59:47
阅读次数:
201
线程池是指在创建一个多线程应用程序的时候创建的一个线程集合,然后在执行新的任务的时候重用这些线程而不是新建一个线程 线程的几种状态: 新建状态、就绪状态、运行状态、阻塞状态、死亡(终止)状态 线程赋值名称: http://blog.csdn.net/kaka534/article/details/5 ...
分类:
编程语言 时间:
2018-03-21 13:45:48
阅读次数:
146