IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> API概念类复习知识点04: -> 正文阅读

[Java知识库]API概念类复习知识点04:

截至:Month2Week1

?API概念类复习知识点01:API概念类复习知识点01:_抱住小羊的卷卷-CSDN博客
API概念类复习知识点02:https://blog.csdn.net/zz2097831284/article/details/120314934
API概念类复习知识点03:API概念类复习知识点03:_抱住小羊的卷卷-CSDN博客

API概念类复习知识点04:https://blog.csdn.net/zz2097831284/article/details/120421013

1、进程和线程的区别?

进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

一个进程可以包含多个线程,而且至少包含一个线程。

①地址空间:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间

线程没有独立的地址空间,统一进程内的线程共享本进程的地址空间。

②资源拥有:进程之间的资源是独立的,同一进程内的线程共享本进程的资源。

③执行过程:每个独立的进程都有一个程序运行的入口,可以独立执行。

但是线程不能独立执行,必须依附在应用程序中,由应用程序提供多个线程的执行控制。

2、线程与多线程区别:

线程:一个顺序的单一的程序执行流程就是一个线程。代码一句一句地有先后顺序地执行。

多线程:多个单一顺序执行的流程并发运行,造成“感官上同时运行”的效果。

3、什么是并发?

多个线程实际运行是走走停停的,线程调度程序会将CPU运行时间划分为若干个时间片段,并尽可能均匀地分配给每个线程,拿到时间片的线程会被CPU执行这段时间。

当超时后,线程调度程序会在此分配一个时间片段给一个线程,使得CPU执行它,如此反复。

由于CPU执行时间在纳秒级别,我们感觉不到切换线程运行的过程,所以微观上走走停停,宏观上感觉是一起运行,这种现象称为并发运行。

?4、并发和并行区别

1、并发是指一个处理器同时处理多个任务,并行是指多个处理器或者多核处理器同时处理多个不同的任务。

2、并发是逻辑上同时发生,并行是物理上同时发生。

5、sleep和wait的区别?

① 所属类名:sleep是Thread类的静态方法,wait是Object类的方法
② 释放资源:sleep不出让系统资源,不会释放对象,wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。

③时间限制: 一般wait不会加时间限制,如果wait线程的运行资源不够,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。

sleep方法可以传递一个long类型的参数表示毫秒ms,可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。

④ 捕获异常:sleep必须捕获异常,而wait不需要捕获异常。

6、简述线程的生命周期

在线程的生命周期中,它要经过 新建、就绪/可运行、运行、阻塞、死亡5种状态。

创建对象使用new关键字,通过调用start方法进入就绪状态。当系统分配时间片时,进入运行状态;时间片耗尽,回到就绪状态。当run方法执行完毕后,进入死亡状态。?

在运行状态时,可以通过调用sleep()和join()方法进入阻塞状态,也可以通过wait方法进入等待阻塞状态,解除阻塞后进入可运行状态。

?7?、同步运行和异步运行的区别?

同步:发送一个请求,等待返回,然后再发送下一个请求。

异步:发送一个请求,不等待返回,随时可以再发送下一个请求。

?8?、启动线程调用什么方法?可不可直接调用run方法?为什么?

启动线程需要调用start()方法,不能直接调用run方法?。

调用start方法后,该线程会被纳入线程调度程序控制,run方法会自动执行。单纯调用run方法程序会执行方法,与线程无关,也无法实现并发运行。

9、创建线程的方式有几种?区别是什么?

1、定义一个类继承子Thread,并重写run方法,在run方法中定义要与其他线程并发运行的任务。启动线程时要使用start()方法。结构简单,便于匿名内部类形式创建。但线程与线程任务绑在一起,不利于线程的重用。

2、使用Runnable接口,重写run方法。将线程和任务分离。

3、实现Callable接口,重写call方法定义要执行的任务。JDK5后开始提供了Callable接口,以及搭配使用的Future接口,通过是它们可以在任务执行完毕后得到执行结果,并且可以抛出异常。

10、如何关闭线程池?

?ThreadPoolExecutor提供了两个方法用于线程池的关闭,分别是shutdown()和shutdownNow()

① shutdown()不会立即终止线程池,而是等所有任务缓冲队列中的任务都执行完后才终止,但也不会再接收新任务。

② shutdownNow()会立即终止线程池,并尝试打断正在执行的任务,并且i清空任务缓冲队列,返回尚未执行的任务。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:19:04  更:2021-09-23 11:22:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:52:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码