"并行和并发的区别,线程和进程的比较,守护线程及创建线程方式总结"
需积分: 0 2 浏览量
更新于2024-01-20
收藏 1.3MB DOCX 举报
JUC面试知识点总结:
1、并行和并发的区别:
并行是指两个或者多个事件在同一时刻发生,而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。并发编程的目标是充分利用处理器的每一个核,达到最高的处理性能。
2、线程和进程的区别:
进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而提高效率。线程是进程的一个实体,是CPU调度和分派的基本单位,比程序更小,能独立运行。同一进程中的多个线程之间可以并发执行。
3、守护线程是什么:
守护线程(即Daemon thread)是个服务线程,准确地说是服务其他的线程。守护线程的生命周期依赖于其他非守护线程,当所有非守护线程结束时,守护线程也会自动结束。典型的例子是垃圾回收线程,当所有非守护线程结束后,垃圾回收线程将会自动执行。
4、创建线程的几种方式:
1. 继承Thread类创建线程:创建一个类继承Thread类,并重写run()方法,然后通过创建该类的实例来启动线程。
2. 实现Runnable接口创建线程:创建一个实现Runnable接口的类,并实现run()方法,然后通过创建Thread类的实例,将该实现类的实例作为参数传入,并调用start()方法来启动线程。
3. 通过Callable和Future创建线程:创建一个实现Callable接口的类,并实现call()方法,然后通过创建FutureTask类的实例,将Callable类的实例作为参数传入。通过创建Thread类的实例,将FutureTask类的实例作为参数传入,并调用start()方法来启动线程。
4. 通过线程池创建:使用java.util.concurrent包中的Executor框架来创建线程池。通过创建线程池实例,调用execute()方法来执行任务。
以上是JUC(Java Util Concurrent)面试知识点的总结。掌握这些知识点对于进行Java并发编程非常重要,能够提高程序的性能和效率。同时,了解线程和进程的区别,以及守护线程的概念也是理解并发编程的基础。熟练掌握创建线程的几种方式,可以根据需求灵活选择合适的方式来实现多线程编程。
2021-05-07 上传
2018-11-12 上传
2022-07-06 上传
2023-07-06 上传
2023-06-25 上传
2023-04-14 上传
2018-04-08 上传
2018-10-18 上传
glowlaw
- 粉丝: 28
- 资源: 274
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜