2 sinat 33314857 sinat_33314857 于 2016.03.18 09:16 提问

生产者消费者:openmp线程和windows线程混合编程问题

求各位大神指导:参考生产者消费者模型,采用信号量唤起各处理函数,其函数中用openmp提速,处理时间有所降低,但存在的问题是初次调用函数时,第一次调用的时间消耗远多余后面调用的时间,不知道问题出现在哪里?是因为第一次需要线程创建消耗时间吗?(在使用openmp指令是并没有指明创建多少线程)

1个回答

mianbaohebg
mianbaohebg   2016.12.17 22:57

PHP上层接口的封装。别人底层接口做的是单一的增删改。我需要调用多个不同服务器上的接口来处理我需要的数据。进行更新到相应的接口里面。但是如果有的数据更改不成功了。需要事务的回滚。现在我知道的是同一个数据库里面的话,操作数据库的事务是可以实现的。但是不同的服务器不同的数据库,我需要事务处理的话。需要怎么做。我百度了分布式事务。但是没看懂。百度说的是JAVA的。我写PHP的跟他不一样。求大神指点

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c++多线程 (生产者消费者问题)
针对多线程中常见的生产者消费者问题,封装了一个类,和测试代码,方便日后直接套用。 具体来说就是多线程使用时候经常遇到的 一个线程取数据,一个处理数据,一个保存或传递数据。
使用Win32 API实现生产者消费者线程同步
#include #include #define QUEUE_LENGTH 10 //缓冲区长度 HANDLE full_sem; //满信号量 HANDLE empty_sem; //空信号量 struct Msg { int i; };//消息结构 Msg MsgQueue[QUEUE_LENGTH]; //缓冲区 int head = 0;//队列头 int tail =
openMP 设置 (并行计算)
<br />windows:<br /><br /><br /><br />如何建立Openmp编程环境<br />    <br />       OpenMP在Windows环境下比较容易实现,只要打开VS2008中的编译选项/openmp,设置一下环境变量OMP_NUM_THREADS就可以了。<br />        一般是新建一个c++项目,以次选择Project -> (alt+f7)属性 -> 配置属性(configuration property) -> c/c++ -> 语言(Langu
【转载】设置openmp线程个数
两种方法 一。首先在函数中设置 #include"omp.h"#include#include#includeusing namespace std; int main(){ clock_t start=clock();#pragma omp parallel num_threads(8) {  printf("Hello! time=%ld   threadID=%d\n",clock()
windows编程实现生产者消费者问题
有四个生产者线程和四个消费者线程, 生产者线程的操作;当生产一个产品时,自己的生产区中画一个矩形区域,存入公共空间时,自己空间的矩形移动到公共空间。 消费者操作类似。 我遇到的问题就是:当程序执行到生产者线程创建的时候,程序不再执行回调函数, 下面是源代码:(这里面只是执行了生产操作,其他的尚未完成) //头文件header.h //在此文件中主要定义程序中所需要的图形界面的点的集
OpenMP入门(2)条件编译和查看线程数的函数
一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)[1]。OpenMP中的条件编译语句:#ifdef _OPENMP#endif这两行中间的源程序只会在并行编译时才会被编译下面我们学习两个跟线程数目相关的常用函数: omp_get_num_threads() 获得线程
OpenMP多线程
OpenMP并行程序设计           转载:http://blog.csdn.net/augusdi/article/details/8807119           OpenMP是一个支持共享存储并行设计的库,特别适宜多核CPU上的并行程序设计。今天在双核CPU机器上试了一下OpenMP并行程序设计,发现效率方面超出想象,因此写出来分享给大家。           在VC
多线程_生产者与消费者
创建一个线程有以下两种方式: ①线程类继承Thread,重写run()方法,在run()方法中完成此线程所要完成的工作,直接创建线程类的对象,然后调用start()方法启动线程,默认调用run()方法。 ②线程类实现Runnable接口,实现run()方法,在run()方法中完成此线程所要完成的工作;创建线程的时候要注意: 首先创建实现Runnable接口的线程类的对象t,然后通过Thread tt = new Thread(t);来创建线程tt。也是通过调用start()方
使用OpenMP给程序加速
最近面试总是谈到效率问题,这个问题以前一直没考虑过,就是稀里糊涂的写。之前有看到过OpenMP,也不曾深究,看到这篇博客关于OpenMP写的非常详细,就转来慢慢学习吧。 OpenMP语法简介:  你想让你的程序运行的更快吗? 你想让你的程序在改动很少代码的基础上免费的飞奔起来吗?  如果答案是肯定的,向您推荐Inter免费的OpenMP。 OpenMP是基于多核处
并行计算—OpenMP—section指令
// OpenMP1.cpp : 定义控制台应用程序的入口点。 //sections和section指令 #include "stdafx.h" #include "omp.h" #include int _tmain(int argc, _TCHAR* argv[]) { #pragma omp parallel sections { #pragma omp sec