Java架构师必备的面试题整理——多线程并发技术总结

本文详细介绍了Java多线程的概念,强调了多线程的优缺点,探讨了线程调度和线程间的通信。此外,列举了常见的Java线程面试题,如线程的join方法、Lock接口的优势、wait与sleep的区别,以及如何解决生产者-消费者问题和死锁。同时,分享了多线程并发学习路径,提醒面试者重视并发知识的学习,以提高竞争力。
摘要由CSDN通过智能技术生成

一、概念

什么是线程

  • 一个线程要执行任务,必须得有线程

  • 一个进程(程序)的所有任务都在线程中执行的

  • 一个线程执行任务是串行的,也就是说一个线程,同一时间内,只能执行一个任务

多线程原理

  • 同一时间,CPU只能处理1条线程,只有一条线程在工作(执行)

  • 多线程并发(同时)执行,其实质是CPU快速的在多线程之间调度(切换)

如果线程过多,会怎样?

  • CPU在N多条线程中调度,会消耗大量的cpu资源

  • 每条线程被调度执行的频率越低(线程的执行效率低)

多线程的优点

  • 能适当提高程序的执行效率

  • 能适当提高资源的利用率(CPU 内存利用率等)

多线程的缺点

  • 创建线程是有开销的,iOS下主要成本包括:内核数据结构(大约1KB)、栈空间(子线程512KB、主线程1MB,也可以使用-setStackSize:设置,但必须是4K的倍数,而且最小是16K),创建线程大约需要90毫秒的创建时间

  • 如果开启大量的线程,会降低程序的性能

  • 程序越多CPU的线程上的开销就越大

  • 程序设计更加复杂:线程之间的通讯,多线程的数据共享

主线程的主要作用

  • 显示和刷新UI界面<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值