/* * m.cpp * * Created on: 2015年1月23日 * Author: maygolf */ #include <pthread.h> #include <iostream> #include <time.h> #include <sys/time.h> #include <unistd.h> using namespace std; int i = 0; pthread_mutex_t mutex ;//= PTHREAD_MUTEX_INITIALIZER; long long current_time() { struct timeval t_start; //get start time gettimeofday(&t_start, 0); long long t = ((long long) t_start.tv_sec) * 1000 + (long long) t_start.tv_usec / 1000; return t; } void* doSomeThing(void* cookie) { while (1) { if (pthread_mutex_lock(&mutex) == 0) { cout << "name:" << pthread_self() << " time:" << current_time() << " i:" << i << endl; i++; pthread_mutex_unlock(&mutex); } // cout << "name:" << pthread_self() << " time:" << current_time() << " sleep" << endl; // sleep(1); } return (void*) 1; } int main(int argc, char **argv) { pthread_mutex_init(&mutex,NULL); pthread_t thread, thread1,thread2; cout << "name:" << pthread_self() << " time:" << current_time() << endl; pthread_create(&thread, NULL, doSomeThing, &thread); pthread_create(&thread1, NULL, doSomeThing, &thread1); pthread_create(&thread1, NULL, doSomeThing, &thread2); // cout << "name:" << pthread_self() << " time:" << current_time() << endl; // int i = 0; // for (i = 0; i < 10; i++) // { // sleep(1); // // } // cout << pthread_cancel(thread) << endl; pthread_join(thread, NULL); pthread_join(thread1, NULL); pthread_join(thread2, NULL); }
相关推荐
线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。 举例1: 银行存款 5000。柜台,折:取3000;提款机,卡:取 3000。剩余:2000 举例2...
pthread 条件变量,线程同步
文章目录一、线程同步的概念二、互斥锁1、初始化锁2、阻塞加锁3、非阻塞加锁4、解锁5、销毁锁(此时锁必需unlock状态,否则返回EBUSY)三、示例程序四、版权声明 一、线程同步的概念 线程同步?怎么同步?一起运行?...
cocos2d-x多线程和同步 cocos2d-x v2.2.0
Linux线程里还支持一个围栏机制--也就是屏障功能。这个围栏机制,可以设置等待的线程数量,当指定...在Linux线程里的屏障功能由`pthread_barrier `系列函数实现,在<pthread.h>中定义,功能主要是用于多线程的同步。
http://blog.csdn.net/infoworld/article/details/49798215 mingw 编译,Win32部分可以直接用vs编译.
1。生产者消费者问题(信号量+mutex) 参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,...编写一个写者优先解决读者写者问题的程序,其中读者和写者均是多个进程,用信号量作为同步互斥机制。
pthread.h是UNIX的一个库,windows需要拖 <pthread.h>库
线程同步20 使用64 位体系结构20 2 基本线程编程23 线程库................................................................................................................................................. ...
通过配置线程调度策略与优先级,可使各线程按照设定的顺序执行,从而达到线程间同步的目的,线程属性配置函数包括: pthread_attr_init(&attr[i]);// 初始化线程属性 pthread_attr_setschedpolicy(&attr[i], SCHED...
互斥量(也称为互斥锁)出自POSIX线程标准,可以用来同步同一进程中的各个线程。当然如果一个互斥量存放在多个进程共享的某个内存区中,那么还可以通过互斥量来进行进程间的同步。 互斥量,从字面上可以知道是...
线程同步 4.1互斥锁 4.1.1 创建和销毁 4.1.2互斥锁属性 4.1.3锁操作 4.1.4其他 4.2条件变量 4.2.1创建和注销 4.2.2等待和激发 4.2.3其他 4.3信号灯 4.3.1创建和注销 4.3.2点灯...
打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一目录下之后在终端执行:1.“make”生成“test”可执行文件;2. 输入“./test”运行...
操作系统中调用Pthread实现进程互斥
linux 同步与互斥 posix 线程同步 实现 。(此为博客http://blog.csdn.net/shallnet 文章对应源码下载)
不过要注意的是线程间需要做好同步,一般用 mutex。pthread_mutex_lock 声明开始用互斥锁上锁,此后的代码直至调用 pthread_mutex_unlock 为止,均被上锁,即同一时间只能被一个线程调用执行。当一个线程执行到 ...
条件变量是线程可用的另一种同步机制。条件变量给多个线程提供了一个会合的场所。条件本身是由互斥量保护的。线程在改变 条件状态前必须首先锁住互斥量。 条件变量的初始化 pthread_cond_init 去除初始化 ...
(2)基于Beginthread实现多线程,并实现线程的简单同步。 (3)实现多线程字符串查找程序 Linux: (1)实现多线程字符输出,存在三个线程,线程1用来监听用户输入和其他两个线程的监听器,线程2的主要内容为每隔一...
线程同步 多线程同时读写同⼀份共享资源的时候,可能会引起冲突。需要引⼊线程"同步"机制,即各位线程之间有序地对共享资源进⾏操 作。 #include <pthread.h> using namespace std; queue<int> q; void *pop(void* ...
[并发并行] [线程同步] [pthread和win32的临界区 Critical Section 比较] vs2010