社区
C++ 语言
帖子详情
for循环是否涉及并发问题
allanwxm
2008-04-08 11:01:21
for(int i=1;i<=count;i++) //count为设备总数
{
ret[i]=deviceInit(deviceNumber[i]); //对设备进行初始化,各个设备相互独立,但设备初始化时都需要用到同样的资源
}
问题:是否可以保证在各个设别初始化过程中不会发现资源被占用的问题,for循环是否保证了一个设备初始化完全完成后才进行另一个设备的初始化
...全文
695
13
打赏
收藏
for循环是否涉及并发问题
for(int i=1;i<=count;i++) //count为设备总数 { ret[i]=deviceInit(deviceNumber[i]); //对设备进行初始化,各个设备相互独立,但设备初始化时都需要用到同样的资源 } 问题:是否可以保证在各个设别初始化过程中不会发现资源被占用的问题,for循环是否保证了一个设备初始化完全完成后才进行另一个设备的初始化
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
szcoder1102
2008-04-12
打赏
举报
回复
***************************************************************************
思想决定行动,交流产生力量。
程序员在深圳QQ群大集
专业分类:
程序员在深圳JAVA群4247660
程序员在深圳c++群15195967
程序员在深圳.NET群Ⅱ:12203296
程序员在深圳TCP/IP协议栈开发:16956462
程序员在深圳JS & AJAX群:12578377
程序员在深圳英语学习群:23864353
深序员在深圳VB:11055959
程序员在深圳c++Ⅱ17409451
程序员在深圳c++群15195967
程序员在深圳嵌入式开发群37489763
程序员在深圳移动开发群31501597
程序员在深圳创业群33653422
不限专业分类:
高级群:17538442
第三群:2650485
第二群:7120862
第五群:29537639
第四群:28702746
第六群:10590618
第七群:10543585
第八群:12006492
第九群:19063074
第十群:2883885
第十一群:25460595
第十二群:9663807
深圳程序员QQ群联盟成立两年多,拥有三十个以上的QQ群,人数达两千多人,有30%以上的成员的经验丰富
的老手,包括国内外顶级大公司的成员(如微软、IBM,SUN,华为)、国内著名高校和研究院成员,和有
丰富实践经验的高级程序(包括参加过上亿元的项目的架构师),有很热爱技术的成员(包括自己写过嵌入
式操作系统),还有少数女程序员。
现推介如下QQ群,如有兴趣速速加入:深程高级群:17538442(此群不欢迎新手,已经在深圳工作的,月薪
6K以下的不欢迎)c++:15195967 .NET:12203296 mobile:31501597嵌入式:37489763 JAVA:4247660
——————————————————————————————————————————
希望大家不要认为群能给你送来什么,这只是一个平台,让同等水平的程序员有个交流的机会或许能得到
一点信息或许能带来一点启发。
有人说常聊QQ的人肯定技术不怎么样,但其实很多技术高朋友不需要做一些简单的重复劳动所以还是有
时间聊天的。
*****************************************************************************
rushman
2008-04-11
打赏
举报
回复
[Quote=引用 10 楼 allanwxm 的回复:]
各个设备初始化不涉及同步问题,各个设备之间都是独立的,先初始化哪一个都行,是调用corba进行设备的初始化,但每个设备的初始化都需要用到用户卡这个资源,而且deviceInit是在初始化成功或失败后才返回ret,这样的话,各个设备的初始化是否涉及了并发的问题?
[/Quote]
这还是要看具体实现。
如果 deviceInit 返回前设备已经初始化完成,那么可以理解为已经通过阻塞实现顺序访问
如果 CORBA 内部实现了同步,那也不需要再做什么了
如果其他的地方都不能保证资源访问的同步问题,那么你需要自己来解决。进程、线程同步的方式有很多,你可以参考相关资料。
总之,整个初始化过程中,总是要在某个环节使资源的访问实现顺序化(同步)。
allanwxm
2008-04-11
打赏
举报
回复
各个设备初始化不涉及同步问题,各个设备之间都是独立的,先初始化哪一个都行,是调用corba进行设备的初始化,但每个设备的初始化都需要用到用户卡这个资源,而且deviceInit是在初始化成功或失败后才返回ret,这样的话,各个设备的初始化是否涉及了并发的问题?
allanwxm
2008-04-11
打赏
举报
回复
结贴了,被搞晕了,也不知道是不是这块儿出了问题
就呆在云上
2008-04-09
打赏
举报
回复
for本身不考虑这个问题
标准c或者c++应该是要求顺序执行的
当然了
如果你的deviceInit函数里面涉及到多线程就不好说了
rushman
2008-04-09
打赏
举报
回复
> ...for循环是否保证了一个设备初始化完全完成后才进行另一个设备的初始化
for循环本身不考虑并发问题。
如果deviceInit返回前设备已经初始化完成,那就没什么问题。否则,就是有问题的,需要对资源访问进行同步。
lin_style
2008-04-09
打赏
举报
回复
不过你程序涉及到并发,最起码都会用个MUTEX同步吧
独孤过儿
2008-04-09
打赏
举报
回复
[Quote=引用 4 楼 taodm 的回复:]
貌似C、C++标准都没有承诺for循环一定要顺序执行吧。
呼唤卫亭来查标准。
[/Quote]
卫亭就是活标准,o(∩_∩)o...哈哈
taodm
2008-04-09
打赏
举报
回复
貌似C、C++标准都没有承诺for循环一定要顺序执行吧。
呼唤卫亭来查标准。
ShardowM
2008-04-09
打赏
举报
回复
for本身和并发并没有任何关系
它只是一个循环语句,它的循环
条件是受循环体内的执行结果影
响的,如果它支持并发的话,就
会在语意上出现矛盾。
LZ的问题只和deviceInit的实现有关
[Quote=引用 3 楼 arong1234 的回复:]
简单的说,如果deviceInit是同步的,必然会等前面的先初始化完,如果它是异步的,则可能并发
[/Quote]
如果deviceInit是同步的,它必然会等到设备初始化完后返回
如果是异步的,则会在第一个设备还没初始化完成就返回,这样就会出现第一个设备还在初始化完成,后面的设备就开始初始化了
arong1234
2008-04-08
打赏
举报
回复
简单的说,如果deviceInit是同步的,必然会等前面的先初始化完,如果它是异步的,则可能并发
[Quote=引用 1 楼 oo 的回复:]
这个跟你的 deviceInit函数的实现有关
[/Quote]
stevenW
2008-04-08
打赏
举报
回复
同意楼上的。deviceInit返回值表示可以for处理下一个设备了,但上一个设备是否初始化完毕,看deviceInit如何实现的。
oo
2008-04-08
打赏
举报
回复
这个跟你的 deviceInit函数的实现有关
C++实现简单的
并发
(C++运行
并发
for
循环
)
在学校学过c++的一点皮毛,现在发现,stl是真心难。。不多说,进正题,C++如何运行
并发
的for
循环
。 需要用到
并发
的地方一般都
涉及
到性能,
并发
分为多线程
并发
和多进程
并发
。多线程
并发
一般来说系统的开销比多进程的要小,而多进程的整体性能一般是由于多线程的。 C++实现多线程
并发
#include <iostream> #include <vector> #inc...
for
循环
多线程执行_Java
并发
编程核心:线程与多线程必知必会!
1.线程与多线程线程是什么?线程(Thread)是一个对象(Object)。用来干什么?Java 线程(也称 JVM 线程)是 Java 进程内允许多个同时进行的任务。该进程内
并发
的任务成为线程(Thread),一个进程里至少一个线程。Java 程序采用多线程方式来支持大量的
并发
请求处理,程序如果在多线程方式执行下,其复杂度远高于单线程串行执行。那么多线程:指的是这个程序(一个进程)运行时产生了不...
面试题系列 —— 1、for
循环
中的定时器
问题
面试题系列 —— 1、for
循环
中的定时器
问题
首先看一道例题: for (var i = 0; i < 5; i++) { setTimeout(function () { console.log(i); }, 1000); } //输出结果为:1秒后同时输出 5 5 5 5 5 第一次看到这段代码的运行结果的时候,会给人一些疑问: for
循环
里面的打印结果为什么不是0,1,2,3,4,而是什么5个5这种奇怪的结果? 就
高
并发
下的HashMap为什么会死
循环
前言 HashMap
并发
情况下的死
循环
问题
在jdk 1.7及之前版本存在的,jdk 1.8 通过增加loHead和loTail进行了修复,虽然进行了修复,但是如果
涉及
到
并发
情况下,一般建议使用CurrentHashMap替代HashMap来确保不会出现线程安全
问题
。 在jdk 1.7及之前 HashMap在
并发
情况下产生的
循环
问题
,该
循环
问题
将致使服务器的cpu飙升至100%,为了解答这个疑惑,那么今天就来了解一下线程不安全的HashMap在高
并发
的情况下是如何造成死
循环
的,要探究hashmap
cuda 核函数 for
循环
_【CUDA 基础】6.2
并发
内核执行
Abstract: 本文介绍内核的
并发
执行,以及相关的知识Keywords: 流,事件,深度优先,广度优先,硬件工作队列,默认流阻塞行为开篇废话没有废话,继续前面的内容,上文中我们说到了流,事件和同步等的概念,以及一些函数的用法,接下来的几个例子,介绍
并发
内核的几个基本
问题
,包括不限于以下几个方面:- 使用深度优先或者广度优先方法的调度工作- 调整硬件工作队列- 在Kepler设备和Fermi设备...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章