`

多线程(-)

 
阅读更多

        在了解线程之前,我们必须明白什么是进程。进程就是正在运行的应用程序,不如我们打开eclipse开发工具,飞信聊天工具。在windows 管理器中就可以看到他们的进程在运行。进程是由cpu给他们分配内存空间的。所有进程同一个时间是不是同时运行的呢?  答案是否定的。同一个时间只有一个进程在运行,为什么我们感觉好像进程是同步的呢,因为cpu在切换进程间运行速度是很快的,所以我们肉眼是看不到进程之间切换运行。

         一个进程中至少有一个线程,线程是运行在进程上的。没有进程何谈线程。线程是应用程序正在执行的部分。我们熟悉的迅雷下载,可以开启多线程下载,同一时间从服务器上获取的下载资源比单线程多。

      了解java虚拟机是多线程还是单线程

       当我们开启一个java虚拟机,我们就开了一个进程。在这个进程上其实是多线程的,好多书上写的是单线程。java虚拟机执行java代码的入口是main函数,进入这个入口的执行者就是一条线程。通常这条线程叫做主线程。我们都知道在主线程运行的时候会产生垃圾。所以虚拟机有开启另一条线程或多条线程,这叫子线程,用来回收主线程的产生的垃圾。为什么这么设计呢?提高虚拟机的运行效率。如果是单线程,主线程既要执行程序,在内存不足的情况下,又要停止执行程序,去回收垃圾,回收完才能继续执行程序。所以,这样设计的虚拟机效率不高,虚拟机设计开发人员用的就是多线程思想。在以后学习开发中我们应用的多线程设计程序的思想会在多出用到。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics