进程与线程
Java的第一大特色:
多线程的编程支持 更好的处理性能的提升
什么是多线程?
1 、什么是进程
进程的概念: 在操作系统之中一个程序的执行周期就成为进程。在一个程序执行时候一定要使用到电脑的IO, 一定会交互CPU,内存等 这些都是电脑的基本原理。 在最初的DOS系统时代由于其本身就是一个单进程的操作系统,所以在同一个时间段上只能够有一个程序执行,而到了window时代,多个程序可以同时执行,所以Windows系统属于多进程的操作系统 。 完整的程序执行周期就是一个进程。
2 Windows 进程管理器
Windows的进程管理器描述出的当前整个执行过程中到底有多少进程的出现 。 但是这个时候问题就出现了,不管有多少个CPU实际上处理的逻辑没有太大的变化,依然只有一块空间进行程序处理。 假设在单CPU的情况下,那么多个进程如果想同时执行,就需要进行资源的轮番使用。
3 进程与线程区别
在传统的进程阶段,一个程序在使用的时候,所有的资源服务这一个程序,但是在现阶段,一个程序在运行时候,还是一个资源为你服务,但是这个程序是轮流占用这个资源。
一块资源在同一个时间段上可能会有多个进程交替执行,但是在同一个时间点上只会有一个进程执行。
一块资源在同一个时间段上可能会有多个进程交替执行,但是在同一个时间点上只会有一个进程执行。 而线程指的是在进程基础上的进一步划分,线程是比进程更小单位。线程的启动所花费的时间比进程少,进程要比线程慢。Java本身是一个多线程的编程语言,所以其执行的性能快。
思考:Java中的多线程应用体现在哪里?
通过一个简单的程序了解多线程
以服务器为例 客户端与服务器进行交互操作,一台服务器可能会有无数个客户去使用。
对服务器而言, 服务器上可能会有很多的程序,服务器处理的是一个web服务。
对web而言,这些每一个客户就是每一个线程,如果用户越多,web服务要维护的线程对象就越多。 把每一个web服务想象成一个进程 ,每一个web对于主机而言它就是一个进程的信息,所以用户的访问就是一个线程 。 总结:线程是在进程的基础上的划分,没有进程就没有线程,进程一旦消失了,线程一定就会消失,对线程和进程有基本的认识。
每一位用户都会有专属自己的对象,在默认的情况下不会跟别人发生共享,这就是服务器的基本操作逻辑。 而每一位用户就是一个线程,每一个线程有自己的对象。 所谓的高并发指的是访问的线程量暴高,高并发最直白的问题是:服务器的内存不够用了,无法处理新的用户。 要真正把多线程学会,需要先学习实际项目项目开发,再来学习多线程