# 多线程的基本概念
线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢?
* 每个进程是一个应用程序,都有独立的内存空间
* 同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的。)
## 什么是进程?
一个进程对应一个应用程序。例如:在 windows 操作系统启动 Word 就表示启动了一个
进程。在 java 的开发环境下启动 JVM,就表示启动了一个进程。现代的计算机都是支持多
进程的,在同一个操作系统中,可以同时启动多个进程。
## 多进程有什么作用?
单进程计算机只能做一件事情。
玩电脑,一边玩游戏(游戏进程)一边听音乐(音乐进程)。
对于单核计算机来讲,在同一个时间点上,游戏进程和音乐进程是同时在运行吗?不是。
因为计算机的 CPU 只能在某个时间点上做一件事。由于计算机将在“游戏进程”和“音乐
进程”之间频繁的切换执行,切换速度极高,人类感觉游戏和音乐在同时进行。
多进程的作用不是提高执行速度,而是提高 CPU 的使用率。
进程和进程之间的内存是独立的。
## 什么是线程?
线程是一个进程中的执行场景。一个进程可以启动多个线程。
## 多线程有什么作用?
多线程不是为了提高执行速度,而是提高应用程序的使用率。
线程和线程共享“堆内存和方法区内存”,栈内存是独立的,一个线程一个栈。
可以给现实世界中的人类一种错觉:感觉多个线程在同时并发执行。
## java 程序的运行原理?
java 命令会启动 java 虚拟机,启动 JVM,等于启动了一个应用程序,表示启动了一个进程。该进程会自动启动一个“主线程”,然后主线程去调用某个类的 main 方法。所以 main方法运行在主线程中。在此之前的所有程序都是单线程的。
- 环境搭建
- maven的安装
- Eclipse中从svn中检出maven项目
- 升级JDK9后eclipse无法启动解决方法
- Maven教程
- spring-boot
- JAVA基础
- JAVA多线程
- 常见问题
- 怎么解决tomcat占用8080端口问题图文教程
- 保存到数据库中乱码
- idea Tomcat 部署 war和war exploded的区别
- Android
- Android开发之旅:HelloWorld项目的目录结构
- Android Studio 修改包名最便捷做法
- 2017Android学习路线图,内附完整自学视频教程+工具经验
- Android版本更新知识(检测、升级)总结
- Android设备唯一码的获取
- Android Studio配置打包生成自定义文件名
- 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源
- JAVA相关技术
- MyBatis 教程
- GUNS后台管理框架
- 相关技术学习集合
- 开源系统
- 技术博客收藏
- Spring MVC
- Spring MVC微博
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- 开发工具
- IntelliJ IDE
- IntelliJ IDEA2017 + tomcat 即改即生效 实现热部署
- IntelliJ IDEA + Tomcat ;On Upate Action 与 On Frame Deactivation
- Shiro
- 跟我学Shiro
- 30分钟学会如何使用Shiro
- shiro.ini 配置详解
- Spring
- 谈谈对Spring IOC的理解
- ConditionalOnProperty的使用
- Tomcat
- Tomcat 部署WAR文件之server.xml Context部署
- Redis
- 使用Jedis源码生成Jedis.jar
- Nutz
- Nutz-book Nutz烹调向导