- 程序 : 保存在硬盘上的静态文件
- 进程 : 在内存中处理运行状态的程序, 有生命周期, 一个程序可以启动多个进程(实例), 进程之间不可以直接通信
- 线程 : 进程中的一个子任务, 线程也有生命周期, 一个线程对应一个运行栈, 线程之间通信方便
- 使用Thread类来描述, 创建一个Thread对象, 就相当于创建线程对象, 一个线程对象内部包含一个栈.
- 创建并启动线程的方式 1 : 实现的方式
-
- 写一个具体类, 让这个类实现Runnable接口, 并实现run方法, 这个run方法就相当于线程的入口(线程体)
-
- 创建这个类的对象, 并以它为实参再创建 Thread对象, 这个Thread对象就是线程对象
-
- 调用Thread对象的start方法启动子线程
- 创建并启动线程的方式2 : 继承的方式
-
- 写一个具体类, 让这个类继承Thread类, 并重写run方法, 这个run方法就是线程的入口(线程体)
-
- 创建这个类的对象, 就相当于创建了一个线程对象(建了一个新栈)
-
- 调用对象的start方法, 激活栈, 并压入run方法
- 线程状态有5种
- 新建 ( new Thread())
- 就绪 (start()) -> 失去CPU执行权, 解除阻塞后
- 运行 (获取CPU执行权)
- 阻塞 (sleep, join, wait, 同步)
- 死亡 (run结束)
- 线程分类 :
- 守护线程 : 为用户线程服务的, 如果用户线程死掉, 守护线程也死, 在start()前通过setDeamon()设置
设置 - 用户线程 : 用户线程, 被守护线程守护的. 进程中只有还有一个用户线程, 进程就不会结束.
- 主线程永远无法设置为守护线程
多线程(实现Runnable和继承Thread)
最新推荐文章于 2024-05-04 22:51:31 发布