Java多线程基础之进程与线程

进程

讲线程之前先讲讲进程。进程,一个既陌生又熟悉的词语。在哪见过,想一想。

对,任务管理器。电脑发烧友都会这技能,程序未响应,ctrl+alt+…..
进程是系统进行资源分配和调度的基本单位。调度是指挥调派的角色,而进程是被调派的其中一个。调度工作是CPU负责,CPU根据调度算法执行每个程序,但是它会一直停留一个程序直至这个程序结束吗?答案是不会,CPU工作是不断切换执行程序,比如从QQ程序工作一下子,然后切换YY程序工作一下子,后面又回到QQ程序工作一下子,不断切换。执行速度是非常快的,由此可见调度工作是乱序的。

进程与线程的关系

我们讲的是线程,跟进程、CPU有什么关系。。
别急,先看一张图。

这里写图片描述

上面这图很熟悉对吧,迅雷下载任务。
相信在学顺序结构、分支结构的同学肯定应该都会有一个疑问,一个程序怎么分别三次执行代码。接下来就是要讲的主人公“线程”。
线程是一个程序中的执行单位。啥?又是单位?对的。也就是说进程是一个容器,里面存放这着线程。

这里写图片描述

廉价的图。。
用一个简单的话来说,也就是说CPU调度着进程n,再执行其中的线程n。进程相当工厂,线程相当工厂里面的工人。为了提高生产量,工厂扩建规模,想要听理论性的解释,可以去百度一下。

线程入口

一个进程可以有很多线程,但是没有线程可以不可以呢,从代码里面线程又在哪呢?

    public static void main(String[] args){
        //入口在这
    }

没想到,就是我们最开始敲HelloWorld的地方。这是我们的主函数,同时也是“主线程”的入口。程序初始化只有主线程一个线程吗?这是不对的,还有GC线程。

Java API文档是这样描述线程。

JVM允许应用程序并发地运行多个执行线程。
当 Java 虚拟机启动时,通常都会有单个非守护线程(它通常会调用某个指定类的 main 方法)。Java 虚拟机会继续执行线程,直到下列任一情况出现时为止:
- 调用了 Runtime 类的 exit 方法,并且安全管理器允许退出操作发生。
- 非守护线程的所有线程都已停止运行,无论是通过从对 run 方法的调用中返回,还是通过抛出一个传播到 run 方法之外的异常。

基本就这些,下节讲线程的实现方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值