随笔分类 -  并发编程

摘要:上一篇:线程死锁 守护线程和用户线程 概述: Java中的线程分为两类【daemon】守护线程和【user】用户线程;在JVM启动时会调用main函数,main函数所在的线程就是一个用户线程,其实在JVM内部还同时启动了很多守护线程,比如垃圾回收线程。 区别: 当最后一个用户线程结束时JVM正常退出 阅读全文
posted @ 2021-10-15 22:20 有锦 阅读(6) 评论(0) 推荐(0) 编辑
摘要:上一篇:线程中断 线程死锁 定义:死锁指的是两个及两个以上的线程在执行中,因争夺资源而造成的互相等待的现象,在无外力的作用下这些线程会一直等待而无法继续执行。 死锁产生条件: 1、互斥条件:对象被一个线程占用,那么其他线程要等这个线程用完才能去占用; 2、请求并持有条件:一个线程占用了一个资源,执行 阅读全文
posted @ 2021-10-15 21:27 有锦 阅读(7) 评论(0) 推荐(0) 编辑
摘要:上一篇:yield()–让出CPU执行权 线程中断 线程中断是一种线程中的协作模式,通过设置线程的中断标志并不能直接终止线程的执行,而是被中断的线程根据中断状态自行处理。 中断线程方法:interrupt() 仅仅是给调用这个方法的线程设置一个中断标志,实际上并没有立即被中断,调用这个方法的线程还会 阅读全文
posted @ 2021-10-03 20:45 有锦 阅读(3) 评论(0) 推荐(0) 编辑
摘要:上一篇:sleep()–线程休眠 yield()–让出cpu执行权 yield()是Thread类下的一个静态方法 从注释中可以知道 这个方法一般用于测试和调试 《JAVA并发编程之美》书中是这么描述的: “当一个线程调用yield()方法时,实际就是在暗示线程调度器当前线程请求让出自己的cpu使用 阅读全文
posted @ 2021-10-03 18:22 有锦 阅读(27) 评论(0) 推荐(0) 编辑
摘要:上一篇:join()—等待线程执行终止 sleep()是Thread类下的一个静态方法 另外一个sleep(long time,int nanos)也是静态的,,最终还是调用了sleep()方法 当一个执行中的线程调用了Thread的sleep()方法后,调用线程会暂时让出指定时间的执行权,也就是在 阅读全文
posted @ 2021-09-26 12:41 有锦 阅读(12) 评论(0) 推荐(0) 编辑
摘要:上一节:wait()–阻塞线程 join()等待线程执行终止 所属类: Thread 作用:保证当前线程执行完毕再执行下一个线程,类似同步 场景:在一个任务结束之后才可以进行下一个任务,例如,文件需要先保存成功才让其他线程操作,不能在文件保存过程中就让其他线程去进行操作 个人理解:类似于同步,,将线 阅读全文
posted @ 2021-09-24 12:29 有锦 阅读(5) 评论(0) 推荐(0) 编辑
摘要:上一节:进程、线程一张图 wait()方法阻塞线程 先说一下线程的几个状态,也称作线程的生命周期 线程分为五个生命周期,分别是: 创建 – 就绪 – 运行 – 阻塞 – 死亡 个人理解: 创建状态和普通对象被创建一样,只是声明这么一个东西 就绪状态下,线程可以参与锁的竞争,等待获取cpu的执行权 运 阅读全文
posted @ 2021-09-14 21:09 有锦 阅读(28) 评论(0) 推荐(0) 编辑
摘要:另外说明一下,线程上下文切换: 理解线程上下文切换 内容:在多线程编程中,线程的数量一般都大于cpu个数,而每个cpu在同一时刻只能被一个线程使用,为了让用户感觉多个线程时在同时执行,cpu资源的分配采用了时间片轮转的策略,也就是给每个线程分配一个时间片,线程在时间片内占用cpu执行任务。当前线程的 阅读全文
posted @ 2021-09-02 12:20 有锦 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示