多线程之线程同步Mutex (功能与Critial Sections相同,但是属于内核对象,访问速度较慢,可以被不同进程调用)
一 Mutex
互斥对象(mutex)内核对象能够确保线程拥有对单个资源的互斥访问权。实际上互斥对象是因此而得名的。互斥对象包含一个使用数量,一个线程ID和一个递归计数器。
互斥对象的行为特性与关键代码段相同,但是互斥对象属于内核对象,而关键代码...
分类:
编程语言 时间:
2014-10-09 01:21:37
阅读次数:
266
APUE 线程 - 程序清单
程序清单11-1 打印线程ID
程序清单11-2 获得线程退出状态
程序清单11-3 pthread_exit 的参数不正确使用
程序清单11-4 线程清理处理程序
程序清单11-5 使用互斥量保护数据结构
程序清单11-6 使用两个互斥量
程序清单11-7 简化的加,解锁
程...
分类:
编程语言 时间:
2014-10-05 01:31:37
阅读次数:
191
实例11-1为在Ubuntu12.04上的运行结果与书中描述的不一致呢?从pid来看这两个线程属于同一个进程,且线程ID也是指针形式的,Google后得知,书上讲的是以前的LinuxThreads实现,现在linux使用NPTL线程。参考:Linux线程模型的比较:LinuxThreads和NPTL习题11.4在回答该问题之前..
分类:
编程语言 时间:
2014-10-04 04:40:16
阅读次数:
381
t1 : 这个是线程名称,可以在new Thread()对象的时候指定,或者调用Thread.setName。有了这个名称,搜索thread dump的时候更加方便。这也就是为什么,一般创建线程的时候需要指定线程名称,而不是使用默认的名称。
prio=6 : 这个代表的是线程的优先级priority,也可以通过Thread类中的API修改。实际应用中,一般不会设置该属性,没有太大的用处。
tid : Java的线程Id (这个线程在当前虚拟机中的唯一标识)。
nid : 线程本地标识,是线程在操作系统中的标...
分类:
编程语言 时间:
2014-09-23 21:55:05
阅读次数:
280
线程标识
线程由线程号进行标识。线程号仅在线程所属的进程环境中有效。也就是说属于不同进程的两个线程可能线程号一样。
线程标识用结构体pthread_t tid表示。与线程Id相关的函数如下:
比较两个线程ID:
#include
int pthread_equal(pthread_t tid1,pthread_t tid2);
...
分类:
编程语言 时间:
2014-09-23 12:56:54
阅读次数:
249
在minifilter里面可能有好几种获取调用进程id,名字和线程的办法。我这里有一种:
使用
PsSetCreateProcessNotifyRoutine 和
PsSetLoadImageNotifyRoutine
这是两个API,我们可以借助它们获取进程信息。具体看:http://msdn.microsoft.com/en-us/library/windows/hardware/...
分类:
编程语言 时间:
2014-09-22 17:35:52
阅读次数:
321
HWND hActiveWnd = GetForegroundWindow();//获得当前激活的窗口句柄 DWORD SelfThreadId = GetCurrentThreadId();//获取本身的线程ID DWORD ForeThreadId = GetWindo...
分类:
其他好文 时间:
2014-09-19 15:07:15
阅读次数:
225
//第一种;(单线程)
+ (id)sharePen{
static Pen *pen = nil;
if (pen == nil) {
pen = [[Pen alloc] init];
}
return pen;
}
//第二种;
+ (id)sharePen{
static Pen *pen = nil;...
分类:
移动开发 时间:
2014-09-18 20:47:14
阅读次数:
183
在很多线程实现的案例中,pthread_t作为抽象类型,被指定为长度为4的整行作为线程ID。在一些iSeries服务器的线程实现上,线程ID是一个64位的整型数值和pthread_t是一个抽象的结构体包含数值和一些其他的参数。抽象化允许进程容纳上千个线程。如果不允许移植,不允许进程访问pth..
分类:
其他好文 时间:
2014-09-08 11:00:07
阅读次数:
576
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.程序启动阶段创建一个线程池之后只让主线程调用 accept 并把客户连接传递给池中某个可用线程。
//用于维护关于每个线程基于信息的 Thread 结构
typedef struct {
pthread_t thread_tid; /* 线程 ID */
...
分类:
编程语言 时间:
2014-08-27 13:01:58
阅读次数:
288