Java线程有哪些成本?
- 操作系统会为每个线程创建必要的数据结构、栈、程序计数器等。
- 创建线程也需要一定的时间。
- 线程调度和切换也是有成本的,当有大量可运行线程的时候,操作系统会忙于调度,为一个线程分配一段时间,执行完后,再让另一个线程执行,一个线程被切换出去后,操作系统需要保存它的当前上下文状态到内存,上下文状态包括当前CPU寄存器的值、程序计数器的值等,而一个线程被切换回来后,操作系统需要恢复它原来的上下文状态,整个过程称为上下文切换,这个切换不仅耗时,而且使CPU中的很多缓存失效。
Java面试题 文章被收录于专栏
帮您起飞,助您着陆心仪大厂。