1.GIL与线程调度
Python中的线程是操作系统的原生线程,Python虚拟机使用一个全局解释器锁(Global Interpreter Lock)来互斥线程对Python虚拟机的使用
为了支持多线程机制,一个基本的要求就是需要实现不同线程对共享资源访问的互斥,所以引入了GIL。
GIL:在一个线程拥有了解释器的访问权之后,其他的所有线程都必须等待它释放解释器的访问权,即使这些线程的下一条指令并不会互相影响。
在调用任何Python C API之前,要先获得GIL
GIL缺点:多处理器退化为单处理器;优...
分类:
编程语言 时间:
2014-06-25 19:48:52
阅读次数:
358
本文分析的是llvm libc++的实现:http://libcxx.llvm.org/
C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装。不过里面也有很多细节值得学习。
std::mutex
先来看下std::mutex:
包增了一个pthread_mutex_t __m_,很简单,每个函数该干嘛就干嘛。
class mutex...
分类:
编程语言 时间:
2014-06-25 19:22:54
阅读次数:
338
3.1符号表符号表最主要的目的就是将一个键和一个值联系起来。用例能够将一个键值对插入符号表并希望在之后能够从符号表的所有键值对中按照键值姐找到对应的值。要实现符号表,我们首先要定义其背后的数据结构,并指明创建并操作这种数据结构以实现插入、查找操作所需要的算法。查找在大多数应用程序中都至关重要,许多编...
分类:
其他好文 时间:
2014-06-25 17:05:04
阅读次数:
204
其实所有的死锁最深层的原因就是一个:资源竞争表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B 另一个用户B 访问表B(锁住了表B),然后企图访问表A 这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了 同样用户B要等用户A释放...
分类:
其他好文 时间:
2014-06-25 13:34:10
阅读次数:
313
prepare("show tables;");//准备预处理sql语句 $obj->execute();//执行预处理语句 $obj->fetchALL(PDO::FETCH_ASSOC);//获取结果集 #.插入 $obj = null; $sql = ...
分类:
数据库 时间:
2014-06-25 09:23:42
阅读次数:
244
在缺省模式下,MYSQL是autocommit模式的,所有数据库更新操作都会即时提交。所以,在缺省情况下,MYSQL是不支持事务的。但是如果你的MYSQL 表类型是INNODB tables 或者BDB tables的话,就可以使用事务。set autocommit=0 可以使MYSQL在非auto...
分类:
数据库 时间:
2014-06-24 23:53:20
阅读次数:
422
Preemption Context Switches度量的是操作系统任务调度器将处理器中的一个正在运行的线程切换为另一个更高优先级的线程的次数,即发生抢占的次数。
Synchronization context switches度量的是由于显式调用线程同步API而发生线程切换的次数,如给多线程共享的变量加锁,多线程共同去修改,有些线程要阻塞在lock,直至占用锁的线程释放lock,这个度量反映...
分类:
其他好文 时间:
2014-06-22 19:40:21
阅读次数:
341
昨天在存储过程中用了语句insert into a select from b。在应用中发现bigint字段插入到int字段的时候,数值被截断了,插入后已经不是所要的值。因为存储过程中没有用到异常捕捉的处理,所以一开始并未发现错误,只是在比对数据的时候才发现不对。后来比对了两张表,才发现是字段类型不一样。接下来就试着验证了一下(window下的测试环境)。
创建两张表
CREATE T...
分类:
数据库 时间:
2014-06-22 17:57:28
阅读次数:
356
网上一个连接mysql的jsp代码段,给了数据库的备份文件,但是只有frm,查了下资料,原来只有frm也能导入。 过程如下:1.在mysql目录下的data目录中,找到要导入表所在的数据库的名称,把frm文件放进去,比如我这里是offer.frm,数据库名称是netshop,放到数据库netshop目录下之后,在mysql中show tables显示如下在这里table是显示的,但是desc of...
分类:
数据库 时间:
2014-06-22 17:01:04
阅读次数:
268
一个很简单的问题,之所以让我对这个问题进行总结,一是因为没我想象的简单,在处理的过程中遇到了一些磕磕碰碰,甚至绕了一些弯路,二是引发了我对故障处理时的一些思考。...
分类:
其他好文 时间:
2014-06-22 00:29:39
阅读次数:
225