C++ C++;用线程划分循环 #包括 #包括 使用名称空间std; 空榫(尺寸s、尺寸e、尺寸se) { 对于(尺寸i=s;i

C++ C++;用线程划分循环 #包括 #包括 使用名称空间std; 空榫(尺寸s、尺寸e、尺寸se) { 对于(尺寸i=s;i,c++,multithreading,C++,Multithreading,t0: 哪里会出现异常?使用调试符号编译并在调试器中运行。显示的代码甚至没有浮点操作,无法判断实际发生的情况是否有问题。表达式se+=i不会执行您期望的操作。@VoidStar这一行如何(end-start+(numthreads-1))/numthreads@crush这里没有浮点运算,都是整数运算。为什么?这能实现什么?它对OP有什么好处?通常最好告诉OP哪里出了问题以及如何解决它,而不仅仅是作为答案转储代码。每个num_线程可以是0!在这种情况下,我怀疑你不想要的东西o do默认为1个线程

t0:


哪里会出现异常?使用调试符号编译并在调试器中运行。显示的代码甚至没有浮点操作,无法判断实际发生的情况是否有问题。表达式
se+=i
不会执行您期望的操作。@VoidStar这一行如何
(end-start+(numthreads-1))/numthreads
@crush这里没有浮点运算,都是整数运算。为什么?这能实现什么?它对OP有什么好处?通常最好告诉OP哪里出了问题以及如何解决它,而不仅仅是作为答案转储代码。每个num_线程可以是0!在这种情况下,我怀疑你不想要的东西o do默认为1个线程。评论不是扩展答案的地方。请编辑您的帖子并在其中包含其他信息。
size_t chunk = (end - start + (numthreads - 1))/numthreads ;
size_t chunk = (numthreads>0 ? (end - start + (numthreads - 1))/numthreads) : end - start)