SQLite支持3种线程模式: 单线程:这种模式下,没有进行互斥,多线程使用不安全。禁用所有的mutex锁,并发使用时会出错。当SQLite编译时加了SQLITE_THREADSAFE=0参数,或者在初始化SQLite前调用sqlite3_config(SQLITE_CONFIG_SINGLETH....
分类:
数据库 时间:
2014-10-10 12:32:34
阅读次数:
252
PV操作的思想、重在思想——chenchen...
分类:
其他好文 时间:
2014-10-10 02:16:24
阅读次数:
534
不知道大家对多线程或多进程间的同步互斥的控制机制了解的怎么样,其实有很多种方法可以实现这个目的,但是这些方法其实由4种最基本的方法实现。这4种最基本的方法具体定义如下:在这有讲得不对的地方欢迎各位扔砖,希望不会误导大家。
1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。
2、互斥量:为协调共同对一个共享资源...
分类:
编程语言 时间:
2014-10-09 16:17:58
阅读次数:
183
理解并发编程的一些基本概念很重要,给我们思考问题指明一个基本的方向。这篇说一说锁的一些基本概念。
在通常情况下我们说的锁都指的是“互斥”锁,因为在还存在一些特殊的锁,比如“读写锁”,不完全是互斥的。这篇文章说的锁专指互斥锁。
锁是处理并发的一种同步手段。单线程程序和并发程序的最终目的都是要保证程序的正确性,但是最大的区别是:
单线程程序的正确性只关注程序的运行结果和目标是一致...
分类:
其他好文 时间:
2014-10-09 01:59:38
阅读次数:
165
多线程之线程同步Mutex (功能与Critial Sections相同,但是属于内核对象,访问速度较慢,可以被不同进程调用)
一 Mutex
互斥对象(mutex)内核对象能够确保线程拥有对单个资源的互斥访问权。实际上互斥对象是因此而得名的。互斥对象包含一个使用数量,一个线程ID和一个递归计数器。
互斥对象的行为特性与关键代码段相同,但是互斥对象属于内核对象,而关键代码...
分类:
编程语言 时间:
2014-10-09 01:21:37
阅读次数:
266
生产者,消费者问题是有关互斥锁(MutexLock)、条件变量(Condition)、线程(Thread)的经典案例;描述的问题可以叙述为 生产者往buffer中投放产品,而消费者则从buffer中消费产品。生产着消费者问题的难点在于:为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区投放或者消费...
分类:
系统相关 时间:
2014-10-08 02:39:14
阅读次数:
304
转自:http://blog.csdn.net/zyplus/article/details/6672775在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统...
分类:
编程语言 时间:
2014-10-07 21:23:04
阅读次数:
435
搞多线程的经常会遇到死锁的问题,学习操作系统的时候会讲到死锁相关的东西,我们用python直观的演示一下。
死锁的一个原因是互斥锁。假设银行系统中,用户a试图转账100块给用户b,与此同时用户b试图转账200块给用户a,则可能产生死锁。
2个线程互相等待对方的锁,互相占用着资源不释放。
#coding=utf-8
import time
import threading
class Acco...
分类:
编程语言 时间:
2014-10-07 20:38:43
阅读次数:
172
在操作系统中,进程之间经常会存在互斥(都需要共享独占性资源时)和同步(完成异步的两个进程的协作)两种关系。而信号量和PV操作完美有效的处理了这两种情况。
互斥:就好比过独木桥,一次只能执行一个进程。
同步:好比一个人骑车一个人步行,双方协作完成一件事情,速度快的每过一段时间就停下来等等速度慢的
信号量是...
分类:
其他好文 时间:
2014-10-07 17:55:09
阅读次数:
364
本文对pthread_mutex_t 进行简易的封装;互斥锁主要用于互斥,描述的是一种竞争关系,主要是一个 一种资源或者代码, 在一段时间内 至多能被一个程序访问。而条件变量主要用于线程间同步, 描述的是一种协作关系。Linux中互斥锁的应用比较简单,通用的有以下几个函数:1 int pthread...
分类:
系统相关 时间:
2014-10-06 22:44:20
阅读次数:
241