你好,我是做java开发的,请问"你的程序自然而然拥有了多线程",这句话我该怎么才能做到很好的理解?

TTOS3302041 2008-05-13 10:22:51
多线程我不怎么熟悉,怎样才能深刻理解多线程的好处?开发软件的时候如何利用双核技术带来的多线程方面的好处?
...全文
92 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
TTOS3302041 2008-05-21
  • 打赏
  • 举报
回复
谢谢你这么仔细的回答,多谢!
Intel_merryhy 2008-05-20
  • 打赏
  • 举报
回复
你好,部分IPP 函数是内部是用openMP方法实现了多线程。你可以参考jeff 的openMP 系列
<<http://topic.csdn.net/u/20080512/16/cce9fb90-2e5b-443b-9c1b-d531673049e9.html>>。

比如, 假设ippiAdd是用openmp多线程方法实现的。
ippiAdd()
{
...
#pragma omp parallel for
for (i=0; i<10; i++){ a[i]=b[i]+c[i]}
....
}
当编译器看到有omp标志的地方,会自动生成多线程的代码。这样ippiAdd函数就是多线程的了。

当你调用这个函数时, 多线程的代码也就自动嵌入到你的程序当中了。
当运行时,你可以理解为:整个主程序的流程一开始是串行的,到了调用这个函数,程序会主动创建两个线程(如果你的机器是双核的),让一个线程 运行 i=[0,5), 一个线程运行 i=[5,10)。 不过这些都是由ipp库自带的功能,开发者不需要任何参与就可以得到多线程的程序。 这就是我说的自然而然。
Intel_merryhy 2008-05-20
  • 打赏
  • 举报
回复
你好,部分IPP 函数是内部是用openMP方法实现了多线程。你可以参考jeff 的openMP 系列
<<http://topic.csdn.net/u/20080512/16/cce9fb90-2e5b-443b-9c1b-d531673049e9.html>>。

比如, 假设ippiAdd是用openmp多线程方法实现的。
ippiAdd()
{
...
#pragma omp parallel for
for (i=0; i<10; i++){ a[i]=b[i]+c[i]}
....
}
当编译器看到有omp标志的地方,会自动生成多线程的代码。这样ippiAdd函数就是多线程的了。

当你调用这个函数时, 多线程的代码也就自动嵌入到你的程序当中了。
当运行时,你可以理解为:整个主程序的流程一开始是串行的,到了调用这个函数,程序会主动创建两个线程(如果你的机器是双核的),让一个线程 运行 i=[0,5), 一个线程运行 i=[5,10)。 不过这些都是由ipp库自带的功能,开发者不需要任何参与就可以得到多线程的程序。 这就是我说的自然而然。

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧