- 浏览: 443433 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/types.h> #include <unistd.h> #include <pthread.h> #define MAX 100000000 static pthread_mutex_t iLock = PTHREAD_MUTEX_INITIALIZER; long count = 0; void myThreadA(void) { long i, j; pthread_mutex_lock(&iLock); for (i=0; i<MAX; ++i) { j = count; ++j; count = j; } printf("A The count is %ld\n", count); pthread_mutex_unlock(&iLock); } void myThreadB(void) { long i, j ; pthread_mutex_lock(&iLock); for (i=0; i<MAX; ++i) { j = count; ++j; count = j; } printf("B The count is %ld\n", count); pthread_mutex_unlock(&iLock); } int main(int argc, char *argv[]) { pthread_t tidA, tidB; int i,ret; ret = pthread_create(&tidA, NULL, (void *)myThreadA, NULL); if (0 != ret) { puts("Create A pthread error"); exit(1); } ret = pthread_create(&tidB, NULL, (void *)myThreadB, NULL); if (0 != ret) { puts("Create B pthread error"); exit(1); } puts("This is the main process.\n"); pthread_join(tidA, NULL); pthread_join(tidB, NULL); printf("The final count is %ld\n", count); return 0; }
gcc -lpthread pmlock.c
发表评论
-
execl
2010-10-28 11:13 819#include <stdio.h> ... -
dup2-close-fd
2010-10-28 10:54 783int main(int argc, char *argv ... -
Chapter 16__套接字
2010-10-25 11:39 562AF_INET、TCP、UDP、SCTP 报文界限 soc ... -
Chapter 14__高级IO
2010-10-20 11:45 685struct flock { short ... -
Chapter 15__进程间通信
2010-10-19 15:15 633- - 纯属抄书。。。 IPC(InterProcess ... -
APUE一栏入口
2010-10-14 15:25 734《UNIX环境高级编程》 《Advanced Programm ... -
Chapter 3__文件IO
2010-10-14 14:51 24int fcntl(int filedes, int cm ... -
Chapter 14
2010-10-14 09:01 6841、永远阻塞的调用有哪些? 阻塞,直到函数调用完成为止, ... -
Chapter 5__标准IO库
2010-10-12 11:56 5701)缓冲的本质是减少read和write调用的次数,也就是物 ... -
Chapter 4__文件和目录
2010-10-09 17:34 665一些概念: 主、次设备号 主设备号标识设备驱动程序 次设备号 ... -
Chapter 3__文件IO
2010-10-08 15:47 623无聊,贴些本章的关键字: 一、空洞文件、预读技术(read ... -
Chapter 1__ls DIR And struct dirent
2010-10-08 10:25 58遍历目录 #include "aupe.h& ... -
stdarg.h 可变长参数
2010-09-30 12:13 719http://zh.wikipedia.org/zh-sg/S ... -
Practice Shell解释器
2010-09-29 15:34 929http://linux.chinaunix.net/bbs/ ... -
Chapter 13__守护进程Daemon
2010-09-29 14:43 604为什么守护进程会从进程中成为一类,相对普通进程有什么区别? ... -
Chapter 12__线程控制
2010-09-29 09:53 587★12.2线程限制,sysconf函数,增强可移植性; ★ ... -
Chapter 11__线程
2010-09-28 09:35 648★线程的执行环境 线程ID、栈 一组寄存器值 调度优先级和策 ... -
Chapter 10__信号
2010-09-27 14:06 722SIGHUP解说,有关终端和 ... -
Chapter 9__进程关系
2010-09-27 12:06 723------------------------------ ... -
Chapter 8__进程控制
2010-09-19 13:58 696//一些函数: pid_t getpid(void); ...
相关推荐
32位android中bionic是32位的,其中的mutex只有一半也就是16位能够存储pid,当通过docker运行android时,大概率pid会超过16位的范围,就可能会导致android中mutex死锁,表现为应用卡住黑屏。 [32-bit ABI bugs]...
pthread_testcancel pthread_kill pthread_cancel 的使用例子
linux 同步与互斥 posix 线程互斥 实现 。(此为博客http://blog.csdn.net/shallnet 文章对应源码下载)
以下是对pthread_cond_wait的用法进行了详细的分析介绍,需要的朋友可以过来参考下
多线程编程:互斥锁使用。 打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一...2. 输入“./test”运行可执行程序,即可查看运行结果。
编译时报 Looking for pthread_create - not found 的解决办法 linux gcc 编译时报Looking for pthread_create - not found 其解决办法是...
pthread资源包,pthread源码和已经...pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); pthread_create(&newThread, &attr, Function_t, NULL);
线程编程——使用pthread_join。 打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一目录下之后在终端执行:1.“make”生成“test”可...
信号pthread_cond_wait信号pthread_cond_wait信号pthread_cond_wait信号pthread_cond_wait信号pthread_cond_wait
visual studio多线程支持库,无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用
一篇博客内容 pthread_cond_wait详解
为什么在pthread_cond_wait()前要加一个while循环来判断条件是否为假呢?.zip
线程中处理信号pthread_sigmask 的使用
libpthread.so.0 pthread_cond_wait recv connect pthread_create send accept pthread_cond_signal pthread_cond_init pthread_mutex_unlock pthread_mutex_lock pthread_mutex_init _Jv_RegisterClasses close ...
pthread_mutex_lock(&count;_mutex); value=count; printf("%d:%d\n",pthread_self(),value+1); count=value+1; pthread_mutex_unlock(&count;_mutex); } return (NULL); } int main(int argc,char ** argv) { ...
AudioPlayer
linux 同步与互斥 posix 线程同步互斥 消费者生产者 实现 。(此为博客http://blog.csdn.net/shallnet 文章对应源码下载)
pthread_mutex_t mutex; pthread_mutex_init(&mutex,NULL); pthread_mutex_lock(&mutex); pthread_mutex_unlock(&mutex); pthread_mutex_destroy(&mutex);
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restric attr); int pthread_mutex_destroy(pthread_mutex_t *mutex); 头文件: 返回值: 成功则返回0, 出错则返回错误编号....
pthread_mutex_lock 声明开始用互斥锁上锁,此后的代码直至调用 pthread_mutex_unlock 为止,均被上锁,即同一时间只能被一个线程调用执行。当一个线程执行到 pthread_mutex_lock处时,如果该锁此时被另一个线程使用...