线程调度和主线程
线程调度
- 分时调度
- 所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间
- 抢占式调度
- 优先让优先级的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度
- 设置线程的优先级
抢占式调度详解
大部分操作系统都支持多进程并发运行,现在的操作系统几乎都支持同时运行多个程序。
比如∶现在我们上课一边使用编辑器,一边使用录屏软件,同时还开着画图板,dos窗口等软件。
此时,这些程序是在同时运行,"感觉这些软件好像在同一时刻运行着”。
实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,
而CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。
其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高。
主线程
主线程:执行主方法(main)的线程
单线程程序:java程序中只有一个线程
执行从main方法开始,从上到下依次执行
public class Person { private String name; public void run(){ //定义一个循环 for (int i = 0; i <=20 ; i++) { System.out.println(name+"-->"+i); } } public Person() { } public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
public static void main(String[] args) { Person p1 = new Person("小强"); p1.run(); }
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?