问题背景:
一个旧应用,原先应用是用proc写的,9i的库,现在应用需要改为使用OCCI,其中有一段查询逻辑:select ... where upper(state)=upper(:1)。
(此处请不要纠结于where条件中state字段使用了upper函数,因为此表数据量很小,且其历史比较悠久,未建索引。)
对应表中定义的state字段类型是char(3),但此处查询条件变量的值可能是两...
分类:
其他好文 时间:
2015-03-17 09:02:55
阅读次数:
154
最近看《UNIX环境高级编程》多线程同步,看到他举例说条件变量pthread_cond_t怎么用,愣是没有看懂,只好在网上找了份代码,跑了跑,才弄明白[cpp]view plaincopy#include#include#includepthread_mutex_tmutex=PTHREAD_MUT...
分类:
编程语言 时间:
2015-03-10 23:07:08
阅读次数:
232
一、什么是条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的...
分类:
系统相关 时间:
2015-03-05 19:13:31
阅读次数:
240
进程/线程 同步.(posix)
互斥锁
条件变量
读写锁
记录上锁...
分类:
其他好文 时间:
2015-02-28 21:45:00
阅读次数:
286
IPC的3种技术:
进程(线程)间传递消息的6种接口:
1.管道
2.消息队列
3.过程调用
进程(线程)间同步的6种接口:
1.信号量(两种)
2.互斥量
3.条件变量
4.读写锁
5.记录上锁
进程(线程)间共享内存的2种接口:
1.匿名共享内存
2.有名共享内存...
分类:
系统相关 时间:
2015-02-28 18:40:12
阅读次数:
215
上文讨论了互斥量和条件变量用于线程的同步,本文将讨论读写锁和自旋锁的使用,并给出了相应的代码和注意事项,相关代码也可在我的github上下载。
读写锁
对于互斥量要么是锁住状态要么是不加锁锁状态,而且一次只有一个线程可以对其加锁,而读写锁对线程的读数据加锁请求和写数据加锁请求进行了区分,从而在某些情况下,程序有更高的并发性。对于读写锁,一次只有一个线程可以占有写模式的读写锁,但是多个线程可...
分类:
编程语言 时间:
2015-02-25 17:08:45
阅读次数:
162
Posix条件变量int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr);
int pthread_cond_destroy(pthread_cond_t *cond);
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex...
分类:
编程语言 时间:
2015-02-19 18:39:58
阅读次数:
261
线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务(不止一个不同的任务)就是一个需要解决的关键问题,其实这就是一些"池化资源"...
分类:
编程语言 时间:
2015-02-19 18:39:48
阅读次数:
303
#include struct msg { struct msg *m_next; /* ... more stuff here ... */ int m_id;
}; msg* workq;
pthread_cond_t qready = PTHREAD_COND_INITIALIZER;
pth...
分类:
其他好文 时间:
2015-02-09 19:48:56
阅读次数:
293
一、基础知识。1:线程同步机制:互斥量,读写锁,条件变量,自旋锁,屏障。 1,互斥量:每个进程访问被互斥量保护的资源时,都需要先对互斥量进行判断。 1)互斥量重要属性:进程共享属性,健壮属性,类型属性。 2)部分系统 不支持 进程共享属性 3)对互斥量重复加锁会导致死锁。 2,...
分类:
编程语言 时间:
2015-02-03 16:37:20
阅读次数:
282