[问题]如何设计多线程程序,能达到节省运行时间的目的?
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
[问题]如何设计多线程程序,能达到节省运行时间的目的?
我有一个比较耗时间的数值运算程序,单线程需要40s左右的时间(在我的机器上),如果采用多线程设计,会不会节省时间?
我尝试了一下,在网上拷贝了一个简单的双线程程序,发现程序运行的时间不是少了,而是多了,大概要85s。所以我想知道采用多线程是否会节省时间,应该如何设计?请各位大虾不吝赐教,谢谢!
我尝试了一下,在网上拷贝了一个简单的双线程程序,发现程序运行的时间不是少了,而是多了,大概要85s。所以我想知道采用多线程是否会节省时间,应该如何设计?请各位大虾不吝赐教,谢谢!
- 猛将兄
- 帖子: 2052
- 注册时间: 2005-10-19 17:33
-
- 帖子: 948
- 注册时间: 2006-01-06 22:55
- 系统: ubuntu
- 联系:
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- sonixrp
- 帖子: 505
- 注册时间: 2007-03-28 12:39
-
- 帖子: 20
- 注册时间: 2005-11-25 8:43
- 猛将兄
- 帖子: 2052
- 注册时间: 2005-10-19 17:33
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
-
- 帖子: 2841
- 注册时间: 2006-09-11 22:47
Re: [问题]如何设计多线程程序,能达到节省运行时间的目的?
多线程的目标是提高系统响应度,在嵌入式和实时系统中比较常用。tnger 写了:我有一个比较耗时间的数值运算程序,单线程需要40s左右的时间(在我的机器上),如果采用多线程设计,会不会节省时间?
至于节省时间,除非你有多核系统或者多CPU系统,否则多线程绝对不能节省时间。
——问题是目前的嵌入式和实时系统大都不是多核。
-
- 帖子: 2841
- 注册时间: 2006-09-11 22:47
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
把三角函数换成查表试试tnger 写了:谢谢猛将兄!
看来我要先尝试一下其他的降低复杂度的方法:降低运算精度,数据压缩等方法了。因为我的运算是单纯的数值运算,像的d(i).x*cos(j*3.14/180)+d(i).y*sin(j*3.14/180)之类的(i,j 是循环变量),并且循环次数在10的9次方左右,只是数据之间是不关联的,所以我最初的想法是想尝试一下能够分开两个线程以减少运行时间,现在看来这个想法太不切实际了。
努力尝试其他降低运算复杂度的方法……
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
- greco
- 帖子: 2487
- 注册时间: 2007-04-06 10:24
- 来自: ~/Shanghai
用Elang写
http://silenceisdefeat.com/~greco
代码: 全选
''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d