黑马程序员技术交流社区

标题: 线程的问题,请教。。 [打印本页]

作者: 苏乞儿    时间: 2014-9-18 22:26
标题: 线程的问题,请教。。
加了同步锁,多线程是不是就跟单线程没什么区别了?如果没有区别,那为什么还要多线程呢?大婶科普。。。。
作者: xplcc    时间: 2014-9-18 22:50
个人认为效率上并没有多大区别,如果是单cpu,多线程可能线程会更消耗资源。但是多线程减少了客户的响应时间,用户体验度会更好。比如说我们可以一边下电影一边观看,但是如果你采用单进程,那么你只能等到下完电影才能看,那你说那个方式好呢。
作者: 18353665932    时间: 2014-9-18 23:03
首先,单线程没必要加同步锁,因为他不会出现线程安全问题,而多线程要用是因为程序的需要,多线程就需要加上同步锁,因为会出现安全问题,有时候单线程是没法实现功能的,就像火车站卖票一样,如果是单线程,就没办法实现效率了,所以,加上同步锁一是安全问题,而是保证了多线程能够有效的执行,并且提高了效率!
作者: 苏乞儿    时间: 2014-9-18 23:22
xplcc 发表于 2014-9-18 22:50
个人认为效率上并没有多大区别,如果是单cpu,多线程可能线程会更消耗资源。但是多线程减少了客户的响应时 ...

哦,原来是这样子啊,看来我对多线程的理解还不是很透彻。。。。学习了,谢谢!
作者: 苏乞儿    时间: 2014-9-18 23:24
18353665932 发表于 2014-9-18 23:03
首先,单线程没必要加同步锁,因为他不会出现线程安全问题,而多线程要用是因为程序的需要,多线程就需要加 ...

你的意思是,加了同步锁的多线程的效率还是比单线程的效率高吗?
可以加了同步锁,不是同一个时间只有一个线程在执行程序吗,这不就是单线程了?
作者: 18353665932    时间: 2014-9-19 00:17
苏乞儿 发表于 2014-9-18 23:24
你的意思是,加了同步锁的多线程的效率还是比单线程的效率高吗?
可以加了同步锁,不是同一个时间只有一 ...

就比如说,火车站卖票,你说是一个窗口卖快还是四个窗口卖快??加上锁是每次都能进去一个,但是他运行的结果是不变的,200张票,一个窗口卖需要200次,4个窗口卖,每个窗口不是平均50次就够了吗?这不是提高了效率吗??节省了时间吗??
作者: 谢建平    时间: 2014-9-19 02:04
  单线程   就像一个人一心一意就做一件事   事没做完前不做其它事情     多线程 就像一个人同时做几件事情。     效率如何就要看情况了。
作者: 苏乞儿    时间: 2014-9-19 22:48
谢建平 发表于 2014-9-19 02:04
单线程   就像一个人一心一意就做一件事   事没做完前不做其它事情     多线程 就像一个人同时做几件事情 ...

嗯,比喻挺恰当。有点懂了。。。。就是效率谁高,还不一定是吧?
作者: 15579171087    时间: 2014-9-19 22:57
肯定有区别啊。。
作者: 苏乞儿    时间: 2014-9-20 00:10
15579171087 发表于 2014-9-19 22:57
肯定有区别啊。。

。。。。。。。。楼主回答真精辟啊。。。。。:L




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2