阅读 38672 次
发表时间:2009-01-05
多线程效率 我认为未必会高,而且有时候相反会低。
多线程并不是为了提高效率,而是不必等待 可以并行执行多条数据。
可以这么想 我们通过xp系统复制文件。你可以复制一份文件 这叫是单线呈,但是你要等这个复制完了才能复制另一份文件,而且不能多复制。这样很难受,所以你可以选择多复制文件,这就是多线程。但复制多份文件用的时间未必会比一份一份文件所用时间少。只是它合理利用了时间进行了多个操作。
    如果是买票系统 就会用到多线呈。买票是同时进行的,如果一个用户一个用户等下去不是办法,所以可以多个用户同时买票,效率也就提高了。这里的效率不是执行的效率 而是时间的合理利用,多个线呈同时进行。
发表时间:2009-01-05
单线程,多线程,线程池,都是不同问题的不同解决策略,不存在谁的效率一定高的问题.

一个时间服务器,一个线程处理请求就可以了
FTP,HTTP服务器,就不一样了,请求多,处理响应时间长,必须得有多个线程来处理,
线程池是多线程的一种改良方式
当然以上指的都是BIO的情况.
在NIO下,处理请求用单线程就可以了,因为它不存在IO阻塞的问题
发表时间:2009-01-05
线程池是指
用洗菜水冲马桶.省了资源了.
发表时间:2009-01-05
lixiaoxu85 写道
随波踏浪 写道
lixiaoxu85 写道
随波踏浪 写道
yefeng 写道
现在的服务器,好像已经没有单CPU了,连个人用机都双CPU了


哈哈哈,多线程和多cpu有啥关系?一个cpu就不能多线程了?不懂请保存沉默,拜托

发觉这位选手说话是极其尖酸刻薄 我也不懂但是我不想保持沉默.
第一 多线程和多CPU没有关系吗?单核的 线程间切换不需要消耗?多线程跟操作系统都有关系,不同的操作系统线程间的切换都不同,优先级表现都不同何况单核和多核呢.
第二 一个CPU当然可以多线程,我想yefeng意思中没说不能吧
我对多线程的看法 是如果你开N个线程去做一件同样的事情,而且线程间无等待 依赖等关系,比开一个线程去做要慢.
我想CORE JAVA里面也有对这点的表述
貌似这是本人第二次发贴 实在是受不了了



文章数13,你数学不好?

你举的这个例子很恶搞,N个线程去做一件同样的事情,而且线程间无等待 依赖等关系,都不需要同步了?就打你这个自己YY出来的例子成立,那么凭啥说比单线程慢?不会又是你YY出来的吧?

拜托你去看下CORE JAVA 中的THREAD这章(好象在下册 忘了)
就举个例子吧 你COPY文件 你同时COPY N个的时间 和你只COPY一个 次数是N的时间 来比较下
如果你取N=1 那我也没话说.如果你又要加上其他条件 比如单核CPU这时候正在干啥干啥 那就当我YY吧
哪怕我说错了 但是有一点我想是没说错 就是拜托你说话别这么刻薄 人家新人问问题 不是被你取笑的


JE上有两种牛人,一种是ROBBIN这样的,另一种就是装 13的,而且是特能13的那种。你去看看这个13的回贴都这样的。
发表时间:2009-01-05
楼主的例子举的还算生动,但思路有点问题。在大多数场景中,各个线程不应该是同时去做同一件事情,而是各谋其职,协调工作,从而最大限度的利用系统资源。而系统资源并不仅仅是CPU,还有I/O或带宽等等。

就楼主的例子而言,可以想象成两个线程,A线程的任务是挖,B线程的任务是把挖开的土石运走,从而提高效率,这也就是经典的生产者消费者模式。
发表时间:2009-01-06
就事论事就好了,不要带个人情绪,技术讨论应该简单点,心态,心态最重要,谁也不是天生就啥都知道,不知道的请教别人这是好的学习态度,别随意打击人家的积极性
发表时间:2009-01-06
多核相当于多cpu啊。。。。。完全可以并行工作。
发表时间:2009-01-06
随波踏浪 写道
ls,感觉你很无知,还13,13你个头,早就注射了免疫疫苗,不怕疯狗咬人

这位同学低调点好不好 注意下你的素质 为社么会有人站出来BS你 而且不是我一个人 自己检讨下吧
何必呢~
发表时间:2009-01-06
lixiaoxu85 写道
随波踏浪 写道
ls,感觉你很无知,还13,13你个头,早就注射了免疫疫苗,不怕疯狗咬人

这位同学低调点好不好 注意下你的素质 为社么会有人站出来BS你 而且不是我一个人 自己检讨下吧
何必呢~

做人低调就行了.
上个网还要低调.
麻烦死了
发表时间:2009-01-06
阳光晒晒 写道
lixiaoxu85 写道
随波踏浪 写道
ls,感觉你很无知,还13,13你个头,早就注射了免疫疫苗,不怕疯狗咬人

这位同学低调点好不好 注意下你的素质 为社么会有人站出来BS你 而且不是我一个人 自己检讨下吧
何必呢~

做人低调就行了.
上个网还要低调.
麻烦死了

吵架骂人谁不会,上网就是为了这个
Global site tag (gtag.js) - Google Analytics