论坛首页 Java企业应用论坛

淘宝面试题:如何充分利用多核CPU,计算很大的List中所有整数的和

浏览 94739 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-07-13  
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。
0 请登录后投票
   发表时间:2010-07-13  
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。


全部都封装进去了?
不过lz的例子还是很好的,在宏观问题上也是一种思路
0 请登录后投票
   发表时间:2010-07-13  
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。

那假设我换个例子呢,count所有大于10的,c#也有一句话方法吗。
0 请登录后投票
   发表时间:2010-07-13  
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。


C#没用过,这个函数的内部实现是使用并发的吗?
0 请登录后投票
   发表时间:2010-07-13  
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。

别人要的是思路,.sum()谁不会用啊?你知道这个.sum()的实现机制吗?
0 请登录后投票
   发表时间:2010-07-13  
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。


我觉得C#里什么都封装好了,虽然说你用一句话可以实现,但是你只限于会用,并不知道它的实现机制
0 请登录后投票
   发表时间:2010-07-13   最后修改:2010-07-13
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。


我觉得C#里什么都封装好了,虽然说你用一句话可以实现,但是你只限于会用,并不知道它的实现机制
程序写的再熟练也没有用,关键是思想


ps:不好意思点错了,发了两次
0 请登录后投票
   发表时间:2010-07-13  
zhao103804 写道
ray_linn 写道
            List<int> collection = new List<int>();
            ...
            return collection.AsParallel<int>().Sum();


这种东西在C#里根本不值得去浪费脑细胞。


我觉得C#里什么都封装好了,虽然说你用一句话可以实现,但是你只限于会用,并不知道它的实现机制
程序写的再熟练也没有用,关键是思想


ps:不好意思点错了,发了两次



其实封装好也是好事,但是机制原理不管在宏观还是微观都是有指导意义的
0 请登录后投票
   发表时间:2010-07-13  
sdh5724 写道
性能不好, 用了同步。 可以分割同步。

每个线程存放自己相加的结果,计算完以后,再相加各个线程统计的结果,避免了同步。
0 请登录后投票
   发表时间:2010-07-13  
我也是先了一个,不需要同步啊,用一个侦听者线程来启动所有即可
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics