java中的多线程!怎么理解?

 我来答
ahyyxx222
2011-07-18 · TA获得超过2532个赞
知道小有建树答主
回答量:1405
采纳率:33%
帮助的人:1191万
展开全部
同一件事,不同的人在做就是多线程。
食堂打饭,一个人一个人打就是单线程,开N个窗口N个人同时打就是多线程
蓝色_灵魂
2011-07-18 · TA获得超过680个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:550万
展开全部
比如煮咖啡,要先烧水,烧水的同时准备茶杯,咖啡,牛奶,方糖,都准备好了水可能也烧开了,然后冲咖啡。
如果是单线程单一模式,就要先烧水,烧水的过程中啥都干不了,然后烧完水才能依次准备茶杯,咖啡,牛奶,方糖。
前者烧水是一个线程,准备茶杯,咖啡,牛奶,方糖是一个线程,二者同时进行互不干扰
追问
谢谢,那一般说的主线程是指什么呢?
追答
main函数就是主线程呀
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hjq嘿呦嘿呦
2021-02-23 · 超过30用户采纳过TA的回答
知道答主
回答量:229
采纳率:70%
帮助的人:5.6万
展开全部
线程是系统调度中的最小单位,因为其拥有比进程更小的资源消耗,因此,在进行同类事情,需要进行互相的通讯等等事情的时候,都采用线程来进行处理。
对于只做固定的一件事情(比如:计算1+2+3+...+9999999)来说,其性能上不会比采用单线程的整体效率高,原因是,同时都是要做这么多运算,采用多线程的话,系统在进行线程调度的过程中喙浪费一些资源和时间,从而性能上下降。
那么,多线程是否就没有存在的意义了呢?答案当然不是的。多线程还是有存在的价值的,我们在写输入流输出流,写网络程序等等的时候,都会出现阻塞的情况,如果说,我们不使用多线程的话,从A中读数据出来的时候,A因为没有准备好,而整个程序阻塞了,其他的任何事情都没法进行。如果采用多线程的话,你就不用担心这个问题了。还举个例子:游戏中,如果A角色和B角色采用同一个线程来处理的话,那么,很有可能就会出现只会响应A角色的操作,而B角色就始终被占用了的情况,这样,玩起来肯定就没劲了。
因此,线程是有用的,但也不是随便乱用,乱用的话,可能造成性能的低下,它是有一点的适用范围的,一般我认为:需要响应多个人的事情,从设计上需要考虑同时做一些事情(这些事情很多情况下可能一点关系都没有,也有可能有一些关系的)。
使用多线程的时候,如果某些线程之间涉及到资源共享、互相通讯等等问题的时候,一定得注意线程安全的问题,根据情况看是不是需要使用synchronized关键字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式