在了解线程之前,我们必须明白什么是进程。进程就是正在运行的应用程序,不如我们打开eclipse开发工具,飞信聊天工具。在windows 管理器中就可以看到他们的进程在运行。进程是由cpu给他们分配内存空间的。所有进程同一个时间是不是同时运行的呢? 答案是否定的。同一个时间只有一个进程在运行,为什么我们感觉好像进程是同步的呢,因为cpu在切换进程间运行速度是很快的,所以我们肉眼是看不到进程之间切换运行。
一个进程中至少有一个线程,线程是运行在进程上的。没有进程何谈线程。线程是应用程序正在执行的部分。我们熟悉的迅雷下载,可以开启多线程下载,同一时间从服务器上获取的下载资源比单线程多。
了解java虚拟机是多线程还是单线程
当我们开启一个java虚拟机,我们就开了一个进程。在这个进程上其实是多线程的,好多书上写的是单线程。java虚拟机执行java代码的入口是main函数,进入这个入口的执行者就是一条线程。通常这条线程叫做主线程。我们都知道在主线程运行的时候会产生垃圾。所以虚拟机有开启另一条线程或多条线程,这叫子线程,用来回收主线程的产生的垃圾。为什么这么设计呢?提高虚拟机的运行效率。如果是单线程,主线程既要执行程序,在内存不足的情况下,又要停止执行程序,去回收垃圾,回收完才能继续执行程序。所以,这样设计的虚拟机效率不高,虚拟机设计开发人员用的就是多线程思想。在以后学习开发中我们应用的多线程设计程序的思想会在多出用到。
分享到:
相关推荐
Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程...
人工智能-项目实践-多线程-多线程爬虫--抓取淘宝商品详情页URL 本项目是一个Java编写的多线程爬虫系统。此系统与我之前开发的ip-proxy-pools-regularly结合使用,共抓取了淘宝近3000个页面,从中解析到了近9万的...
人工智能-项目实践-多线程-tonado的multi-thread 多线程封装 Quick Start 1.在“biz”目录中创建一个py文件,文件名任意但最好不要跟第三方库冲突 2.使用 "Router.route" 装饰器注册函数到路由表中,仿造示例即可 ...
Java多线程--多线程相关概念
人工智能-项目实践-多线程-60行代码实现多线程PDF转Word 使用方法 clone或下载项目到本地 git clone git@github.com:simpleapples/pdf2word.git 进入项目目录,建立虚拟环境,并安装依赖 cd pdf2word python3 -m ...
qt 多线程------- 串口通信 object 继承方式 配合我文章
多线程day2的资源
多线程day1的笔记
人工智能-项目实践-多线程-动态多线程敏感信息泄露检测工具 基于爬虫,动态收集扫描目标相关信息后进行二次整理形成字典规则,利用动态规则的多线程敏感信息泄露检测工具,支持多种个性化定制选项,包括: 规则...
Java多线程-Socket编程
人工智能-项目实践-多线程-一个多线程多进程的下载DEMO 人工智能-项目实践-多线程-一个多线程多进程的下载DEMO
Posix多线程-共享内存
Java多线程--多线程知识点总结和企业真题
Java多线程--让主线程等待所有子线程执行完毕
Java多线程--对比创建多线程的两种方式
人工智能-项目实践-多线程-多线程与高并发 多线程与高并发
Java多线程--线程间的通信
Java多线程--线程的生命周期
人工智能-项目实践-多线程-Java多线程高并发实例 Java多线程高并发实例
Java多线程--创建多线程的基本方式一:继承Thread类