多线程相关面试题总结

本文深入探讨了进程与线程的概念,介绍了创建线程的三种常见方式,详细解析了线程的生命周期,并讨论了线程安全与线程不安全的区别。适合正在准备面试或希望深入了解多线程机制的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:最近一直在面试,总是会被问到多线程相关的问题,就想着收集一下相关的题目。一来加深自己对相关知识的认识;二来要是以后遗忘了,能够快速回忆起来;三来希望对正在查阅相关知识点的朋友有所帮助。


一、进程与线程的概念

进程:是指内存中运行的应用程序,每个进程都有自己独立的一块内存空间。一个进程可以启动多个线程。

           比如在Windows系统中,一个运行的exe就是一个进程。

          动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的

          并发性:任何进程都可以同其他进程一起并发执行

          独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位

          异步性:每个进程都以相互独、不可预知的速度向前推进 

          结构特征:进程由程序、数据和进程控制块三部分组成。

线程:是指进程的一个执行序列,一个进程可以运行多个线程。

         举例:运行中的网易云音乐就是一个进程,播放音乐就是这个进程中的一个线程,下载音乐则是这个进程中的另一个                      线程。

参考地址:https://www.cnblogs.com/zhujunxiao/p/5104128.html

 知乎上一个比较生动形象的回答


二、创建线程的三种方式

①继承Thread类,重写run()方法

②实现Runnable接口,重写run()方法

③实现Callable接口,实现call()方法

点击查看详细内容


三、线程的生命周期

新建:创建线程对象

就绪:线程对象已经启动,但是还没有获得CPU的执行权

运行:线程对象获得了CPU的执行权

       阻塞:没有CPU的执行权,回到就绪状态

死亡:代码运行完毕,线程消亡

线程的五种状态线程的五种状态

 

 

四、什么是线程安全?什么是线程不安全?

线程安全:就是当多线程进行访问的时候,采用加锁的机制,当一个线程访问这个类的某个数据时,进行保护,其他线程不能进行访问知道该线程读取完毕,其他线程才可以使用。不会出现数据不一致或者数据污染。

线程不安全:就是不提供数据保护,有可能出现多个线程先后更改数据,造成得到的数据是脏数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值