多线程概述

基本概念

程序:一段静态的代码,它是应用软件执行的蓝本。

进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。

每一个进程执行都有一个执行单元。该顺序是一个执行路径,或者叫一个控制单元。

线程:就是进程中的一个独立的控制单元。

线程控制着进程的执行,线程间可以共享相同的内存单元。

 

Java的多线程就是在操作系统每次分时给Java程序一个时间片的CPU时间内,在若干个独立的可控制的线程之间进行切换。

 

每个Java程序都有一个默认的主线程。Java应用程序总是从主类的main方法开始执行。当jvm加载代码,发现main方法之后,会启动一个线程,这个线程称为主线程。

 

状态与生命周期

新建的线程在它的一个完整的生命周期中通常经历以下4种状态:

1.新建

当一个Thread类或其子类的对象被声明并创建时,新的线程对象处于新建状态。此时它已经有了相应的内存空间和其他资源。

2.运行

线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有此线程,必须调用start()方法通知JVM,这样JVM就知道又有一个新线程排队等候切换了。

3.中断

中断的原因:

1>JVMCPU资源从当前线程切换给其他线程,是本线程让出CPU的使用权处于中断状态。

 

2>线程使用CPU资源期间,执行了sleepint millsecond)方法,是当前线程进入睡眠状态。

经过参数millsecond指定的毫秒数之后,该线程会重新进到线程队列中排队等待CPU资源,以便从中断处继续运行。

 

3>线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态。等待状态的线程不会主动进到线程队列中排队等待CPU资源,必须由其他线程调用notify()方法通知它,使得它重新进到线程队列中排队等待CPU资源。

 

4>线程使用CPU资源期间,执行某些操作进入阻塞状态,比如执行读/写操作引起阻塞。进入阻塞状态时线程不能进入排队队列,只有当引起阻塞的原因消除时,线程才重新进到线程队列中排队等待CPU资源。

4.死亡

死亡状态:线程释放了实体,即释放分配给线程对象的内存。

处于死亡状态的线程不具有继续运行的能力。

线程死亡原因:

1>正常运行的线程完成了它的所有工作,即执行网run()方法中的所有语句,结束了run()方法

2>线程被提前强制性地终止,即强制run()方法结束




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值