多线程是java中的一个特点。首先一个线程就相当于一个被标识的内存空间。多线程的好处,
第一,他可以让程序的使用者直观的认为,cup是在同时执行了好多个任务,比如你的360,你可以一边杀毒,一边清理垃圾。这里边存在两个线程,一个是杀毒,一个是清理垃圾。试想一下,如果当我们杀毒的时候,我们就必须等他查完毒再去扫垃圾,查毒的时间要耗费那么长,你岂不是要崩溃?这样是不是效率很低?多线程的出现让程序出现了多部分代码同时执行的效果,提高了运行效率。
第二,我认为,单线程并不是所谓的一直执行下去,没有“阻塞”状态。我们说线程的优先级问题。如果你的程序在电脑中运行,就是跟其他的应用程序共同使用同一个cpu(排除多核例外),cpu也会在一定的时间内去执行其他的程序。如果你的程序中必要的存在了多个线程,那么这个多个线程也有了同时抢劫cpu的能力,总比你一个线程要抢劫的多,抢劫的快(按几率来讲)。比如迅雷现在的时候,它就把一个文件分成了好几段来下载的。。
另外,我们也都知道,其实jvm启动了不止一个线程,至少还有负责垃圾回收的回收机制的线程。 |