![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java并发编程
了解线程、并发工具类及其使用方法和常见场景、内置锁(synchronize)、显示锁(Lock)、AQS、并发容器等内容。
程序バ鱼仔
本人2020届毕业生。蓝桥杯国赛二等奖。刚开始写博客,从java基础开始,都是自己的理解,如果有什么不对的,还望各位大佬指点指点。
展开
-
一起走进多线程(六)
3.ThreadLocal 前面提到了synchronized关键字,ThreadLocal与synchronized关键字都是用来处理并发访问的,但是synchronized是利用了锁机制,同一时间只有一个线程能访问方法或代码块。而ThreadLocal为每个线程提供了变量的副本,每个线程访问自己的并非同一个变量。用到ThreadLocal的地方有很多,例如读写锁中的每个线程重入读锁的次数就是存在线程自身的ThreadLocal中。ThreadLocal的使用主要是下面四个方法:public T原创 2020-08-14 10:55:58 · 94 阅读 · 0 评论 -
一起走进多线程(五)
多线程(五)关于多线程基础部分就主要在前面四节讲解了,如果还有小伙伴有疑问或者笔者梳理的有问题的话,欢迎在下方评论区指正,大家一起学习共同进步。结束了基础知识,我们进入到并发工具和锁的学习。...原创 2020-08-08 09:47:03 · 95 阅读 · 0 评论 -
一起走进多线程(四)
多线程(四)前面说到了线程的创建和终止相关的内容,下面主要讲讲线程的其他相关方法:yield( )方法:“谦让”,即让出cpu的执行权,线程重新进入到就绪状态,与其他线程争抢CPU的执行权,并可能再去获得CPU资源。所以说并不能百分百保证yield( )达到谦让效果。调用该方法不会释放锁资源。sleep()方法:“睡眠”,这个方法有一个参数表示睡眠的毫秒数,线程在睡眠期间会让出时间片,但不会释放所资源。yield( )和sleep( )两者对比:假设有一群人在公司中午需要使用微波炉热饭,那大家就定原创 2020-08-01 11:44:55 · 224 阅读 · 0 评论 -
一起走进多线程(三)
多线程(三)上一篇讲了多线程的创建,那么今天主要讲讲线程的终止。线程的终止:说完了线程的开始咱们接下来说说线程的结束 推荐使用的方法是调用interrupt( )方法来进行中断操作。大致的意思就是在线程A中调用线程B的interrupt( )方法,看作是A跟B说"你要中断啦!",然后B会在合适的时间进行中断,但他也完全可以不中断继续工作。因为java中的线程是协作式的,不是抢占式的,线程通过检查自身的中断标志位来判断是否中断。 这里面涉及到几个方法: interrupt( ):发起中断请原创 2020-07-20 18:58:01 · 147 阅读 · 0 评论 -
一起走进多线程(二)
多线程(二)这是本人的java多线程系列的第二篇博客,如果有什么疑问欢迎大家评论区提出讨论。初识Java并发编程首先了解下线程的生命周期:这里借用了https://blog.csdn.net/pange1991/article/details/53860651中的图线程主要就有这六种状态:初始(NEW)、运行(RUNNABLE)、等待(WAITING)、超时等待(TIMED_WAITING)、阻塞(BLOCKED)、终止(TERMINATED)。关于这六个状态转化过程中涉及到的方法,接下来会讲解原创 2020-07-08 14:55:41 · 142 阅读 · 0 评论 -
一起走进多线程(一)
多线程(一)这是我写的第一篇blog。我是一名刚毕业的本科生,对各方面的知识并不是很了解,希望可以通过写这类型的文章加深印象,同时带给有需要的人去查看进程与线程首先先要了解进程与线程的概念,我在学习的过程中,听过最多的一句话就是:进程是资源分配的最小单位,线程是cpu调度的最小单位。对于比较了解线程和进程的人来说这句话其实挺好理解的,但是对于初学者来说这句话还是比较抽象的。我们日常生活中天天都有坐过地铁,对地铁肯定就比较了解。如果我们将进程看成一趟地铁,那么每个地铁车厢就是该进程内的一个线程,如果这个原创 2020-07-07 00:13:17 · 772 阅读 · 0 评论