A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

多线程的同步,既然一个线程执行,另一个必须等待,不是相当于一个线程在执行了么,那为何还用多线程,还有就是既然有一个在等待为何效率还比单线程高呢

14 个回复

正序浏览
只有需要操作同一个对象的时候为了避免线程安全问题才会让一个线程执行,另一个等待,并不是所有的时候都需要线程等待的。

其他时间多线程是可以同时进行的,可以很大地提高运行效率。
回复 使用道具 举报
你要知道多线程的出现可以解决单线程解决不了的事情 单线程效率太低了好好看毕老师的视频关于多线程他讲的很详细的
回复 使用道具 举报
你可以想象一下,你用QQ同时跟两个人聊天       你在等待一个人的回复的时候,对方一直没发来, 你是这么等着还是先去给另一个人发信息?                   单线程就是跟一个人聊天一直聊到说88才会去理会另一个人,  多线程就是不停在两个聊天窗口之间切换,一个等待的时候就跟另一个聊

所以多线程并不会让一个任务完成的时间变快,而且常常会让单个任务完成时间加长。但是在同时运行多个任务的时候,优势就体现出来了
回复 使用道具 举报 1 0
如果有一个线程要操作低速设备呢?别的线程是等待好呢?还是先让它休息一会,让满足条件的线程先执行?
回复 使用道具 举报
Alexrl 中级黑马 2014-12-18 23:45:06
11#
不懂 给赞。 多线程不就相当于你是老总 同一个项目,请了四个人给你搬砖,而单线程是只用一个人给你搬。我的理解。
回复 使用道具 举报
kenhe 发表于 2014-12-18 22:51
只是说在操作同步数据的时候只能一个线程在运行,如果不是同步的数据的话,不就提高效率了吗? ...

我也知道不是同步的效率高,问题我问的是同步
回复 使用道具 举报
kenhe 中级黑马 2014-12-18 22:51:58
9#
只是说在操作同步数据的时候只能一个线程在运行,如果不是同步的数据的话,不就提高效率了吗?
回复 使用道具 举报
在下佩服佩服呀。。
回复 使用道具 举报
这样是不是可以多个任务同时进行呢,效率更高吧。。
回复 使用道具 举报
肯定是高啊!现在的cpu最低不就是双核的,还有四核的。
回复 使用道具 举报
nuddlesW 发表于 2014-12-18 16:54
你这样想,我们设计程序就是要解决生活中的问题,拿存钱取钱来讲,就是线程同步但又可能是由个对象在操作, ...

是不是说存钱和取钱的动作同时进行,只是多线程的同步使其排了个顺序了,我这样理解的,同时进行的话只有不同步了
回复 使用道具 举报
你这样想,我们设计程序就是要解决生活中的问题,拿存钱取钱来讲,就是线程同步但又可能是由个对象在操作,但是必须要一个执行一个等,所以生活中有这样的问题,那程序语言主必须这样设计
回复 使用道具 举报
如果只有一个线程!这个线程死循环了,阻塞了,运行很久,或者我想终止这线程了,我能怎么办呢?
回复 使用道具 举报
居然没人帮我:L
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马