- CPU/内存/IO的巨大性能差异;(cpu/内存太快了,io太慢了)
- 多核cpu的发展;
- 线程的本质是一个可执行代码的工人。(多一个线程就相当于jvm里面多了一个可以看代码然后执行工作的工人,并且多个工人可以同时进行工作)
- 优点:多个执行流,并发执行。
- 缺点:
- 占用资源:每个线程有独立的方法栈。
- 慢:切换上下文典型值1us vs 0.3ns/cycle。
- 能不能让上下文切换尽可能少?
- 协程——用户态线程(不切换cpu,多内容在同一个cpu内执行,要这么做需要自己重写一个调度器。
- 能不能让上下文切换尽可能少?