多线程
扩展:tomcat最大并发连接数 200 个
1. 什么是进程?什么是线程?
进程包含线程,一个进程挂了,线程也就挂了,一个线程挂了,其他线程不受影响,线程之间是独立的
2. 单核CPU和多核CPU
一个CPU可以包含多个核心,一个核心只能同时执行一个线程
3. 线程切换
从保存线程A的状态再到切换到线程B时,重新加载线程B的状态的这个过程就叫 上下文切换。而上下文切换时也会消耗cpu时间。
4. 线程消耗
上下文切换消耗
线程创建和消亡的开销
线程需要保存维持线程本地栈(一个线程会创建一个栈),会消耗内存
5. 并行和并发
并行在同一时间始终一起执行
并发(concurrent):多个任务(进程、线程)同时发起。不能同时执行的(只有一个 cpu),要求同时执行。就只能在某个时间片内,将多个任务都有过执行。一个cpu在不同 的任务之间,来回切换,只不过每个任务耗费的时间比较短,cpu的切换速度比较快,所以 可以让用户感觉就像多个任务在同时执行。
并发的本质:不同的线程 来回切换
6. 创建线程的四种方式:
1)继承Thread类
2)实现Runnable接口
3)实现Callable接口
4) 线程池(其实线程池里面的线程就是通过实现Runable或者Callable创建的线程放入线程池中的)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了