线程

一: 多线程的概念

1. 线程指进程中的一个执行场景,也就是执行流程。

    * 每个进程都有一个应用程序 都有独立的内存空间。

    * 同一个进程中的线程共享进程中的内存资源(共享的是堆内存和方法去内存)。

2. 进程

    * 一个进程对应一个应用程序。 在java的开发环境下 启动JVM 就表示启动了一个进程。现在计算机都是支持多进程

3. 多进程的作用

    * 是提高cpu的利用效率 

4. 线程是一个进程中执行场景 可以启动多个线程。

5. 多线程的作用

   *  多线程的作用是提高应用程序的使用率,线程和进程是共享“堆内存和方法区栈” 栈内存是独立的 一个线程一个栈

6. java程序运行的原理

    * java命令会启动 java虚拟机 启动JVM 等于启动一个应用程序,表示启动了一个进程。该进程会自动的创建一个“主线程”然后主线程调用某个类的main方法。所以main方法运行在主线程中。

    7. 线程的声明周期

      * 新建 采用new语句创建完成

      * 就绪 执行start开启线程

      * 运行 占用cpu时间

      *  阻塞 执行wait语句 执行sleep语句和等待某个对象锁 等待输入的场合

      * 终止 退出run()方法

      多线程不是为了提高执行速度 而是提高应用程序的使用效率。

8. 多线程的并发和并行

   * 并行 多个cpu实例或者多台机器同时执行一段代码处理逻辑 是真正的同时。

   * 并发 通过cpu调度算法,让用户看上去同时执行 实际上从spu操作层面不是真正的同时。并发场景中有公用的资源。

9.线程安全

   * 并发情况下 该代码经过多线程使用 线程的调度顺序不影响任何结果。这个时候我们只需关注系统的内存

10. 同步

   * java中的同步指的是人为的控制和调度 保证共享资源的多线程访问。

11. 线程的调度和控制

   * 分时调度 所有的线程轮流使用cpu的使用权 平均分配每个线程占用cpu的时间片

   * 抢占式调度 让优先级高的线程使用cpu 如果线程的优先级相同 那么会随机选择一个 优先级高的线程获取cpu时间相对多一点。

12. 多线程的实现方式

   * 实现线程的方式有 继承Thread类 实现Runnable接口 这两种方式创建的线程在执行结束后没有返回值。

   *






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值