3880-徐文文-Java学科 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

线程的生命周期:

创建:代码中的new对象,是创建线程的过程

 

新建状态:使用new关键字创建之后进入的状态,此时线程并没有开始执行

就绪状态:调用start方法后进入的状态,此时线程还是没有开始执行

运行状态:使用线程调度器调用该线程后进入的状态,此时线程开始执行,当线程的时间片执行完毕后任务没有完成时回到就绪状态

 

多线程的时间原理,就是在抢占CPU的时间片

消亡状态:当线程的任务执行完成后进入的状态,此时线程已经终止

阻塞状态:当线程执行的过程中发生了阻塞事件进入的状态,如:sleep方法

一旦线程进行阻塞状态:阻塞状态解除后进入就绪状态

[展开全文]

匿名内部类的方法

从代码量,继承Thread类的方式,更简单

需要复习匿名内部类的相关知识

 

[展开全文]

线程创建与启动方法

自定义类继承Thread类并重写run方法,然后创建该方法的对象调用

调用Start()方法

 

开多线程的目的是,同时执行多个类型

 

执行流程:

1、执行main方法的线程叫做主线程,执行run方法的线程叫做新线程/子线程

2、main方法是程序的入口,对于start方法之前的代码来说,由主线程执行一次,当start方法调用成功后线程个数由1个变成了2个,新启动的线程去执行run方法的代码,主线程继续向下执行,两个线程各自独立运行互不影响

当run方法执行完毕后子线程结束,当main方法执行完毕后主线程结束

两个线程执行没有明确的先后执行次序,由操作系统调度算法来决定

 

 

 

 

[展开全文]

线程的创建

java.lang.Thread 类代表线程,任何线程对象都是Thread类的实例

 

Thread类是线程的模板,封装了复杂的线程开启等操作,封装了操作系统的差异性

 

Thread() 使用无参的方式构造对象

Thread(Runnable target)根据参数指定的引用来构造对象,其中Runnable是个接口类型

接口的实现类

 

void start() 用于启动线程,java虚拟机会自动调用该线程的run方法

 

[展开全文]

如描述软件

垃圾清理,病毒的扫描

一个进程,中又分多个线程

注流的开发都是开发多线程技术,开多个任务

单核CPU

多进程也好,多线程也好,同时干很多活

 

进程是重量级的,也就是新建一个进程会消耗CPU和内存空间等系统资源,因此进程的数量比较局限

 

线程是轻量的,新建线程会共享所在进程的系统资源,因此目前主流的开发都是采用多线程的。

 

单核CPU,我来之后学习java,C,C++

CPU在每个线程中切换,多线程是采用时间片轮转法来保证多个线程的并发执行,所谓并发就是指宏观并行微观串行的机制

4核,8核

java中是多线ktg

 

 

[展开全文]

File类

基本概念

可以以获取文件或目录的特征信息

[展开全文]

反射 -- 获取Class对象的方式

1.使用场景

在不确定对象类型和不无额定调用哪种方法时

2.Class类

基本概念

  • java.lang.Class类的实例可以用于描述Java应用程序中的类和接口,也就是一种数据类型。
  • 该类没有公共构造方法,该类的实例由Java虚拟机和类加载器自动构造完成,本质上就是加载到内存中的运行时类。

获取Class对象的方式

  • 使用数据类型.class的方式可以获取对应类型的Class对象(掌握)。使用引用/对象.getClass()的方式可以获取对应类型的Class对象。
  • 使用包装类.TYPE的方式可以获取对应基本数据类型的Class对象
  • 使用Class.forName()的方式来获取参数指定类型的Class对象(掌握)。

  • 使用类加载器ClassLoader的方式获取指定类型的Class对象。

 

[展开全文]

程序与进程的概念

程序,主要指存放在硬盘上的可执行文件

.exe

进程-主要指运行在内存中的可执行文件

在任务管理器上运行了很多的进程,是同时执行很多任务

当进程不够的时候,电脑卡死了

线程就是进程内部的程序流,

操作系统内部支持多进程

每个进程支持多线程,线程是轻量的,新建线程会共享所在进

[展开全文]