随笔分类 -  多线程

摘要:https://mp.weixin.qq.com/s/t1xU4rJFsHjzF9uWkXFjGA 阅读全文
posted @ 2022-10-12 17:07 Nausicaa0505 阅读(11) 评论(0) 推荐(0) 编辑
摘要:https://mp.weixin.qq.com/s/sA01gxC4EbgypCsQt5pVog 公平锁非公平锁 非公平锁: static final class NonfairSync extends Sync { private static final long serialVersionU 阅读全文
posted @ 2022-07-04 11:33 Nausicaa0505 阅读(11) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/duanxz/p/6063697.html 阅读全文
posted @ 2022-05-29 13:08 Nausicaa0505 阅读(20) 评论(0) 推荐(0) 编辑
摘要:线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 Executors 返回的线程池对象的弊端如下: 「FixedThreadPool和SingleThreadPool」:允许的 阅读全文
posted @ 2022-05-26 21:43 Nausicaa0505 阅读(120) 评论(0) 推荐(0) 编辑
摘要:java线程的六种状态 一、新建状态(NEW) 即用new关键字新建一个线程,这个线程就处于新建状态。 二、运行状态(RUNNABLE) 操作系统中的就绪和运行两种状态,在Java中统称为RUNNABLE。 就绪状态(READY) 当线程对象调用了start()方法之后,线程处于就绪状态,就绪意味着 阅读全文
posted @ 2022-05-24 21:08 Nausicaa0505 阅读(1548) 评论(0) 推荐(0) 编辑
摘要:JavaSE1.6为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁",在JavaSE1.6中,锁共有4种状态,级别从低到高依次是:无锁状态,偏向锁状态,轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级.锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁. 阅读全文
posted @ 2022-03-24 22:01 Nausicaa0505 阅读(96) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/riemann_/article/details/104704197 一、前言在开发过程中,好多场景要用到线程池。每次都是自己根据业务场景来设置线程池中的各个参数。这两天又有需求碰到了,索性总结一下方便以后再遇到可以直接看着用。虽说根据业务场景来设置各个参 阅读全文
posted @ 2022-03-22 23:01 Nausicaa0505 阅读(497) 评论(0) 推荐(0) 编辑
摘要:下面的代码,在命令行执行 javac,然后再执行javap -v -p,就可以看到它具体的字节码。 public class SynchronizedTest { public void methodA(){ synchronized (this){ } } public synchronized 阅读全文
posted @ 2022-03-18 15:47 Nausicaa0505 阅读(46) 评论(0) 推荐(0) 编辑
摘要:Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 Fork/Join框架的设计 1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分 阅读全文
posted @ 2022-03-08 22:34 Nausicaa0505 阅读(50) 评论(0) 推荐(0) 编辑
摘要:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=1#/detail/pc?id=6 JUC 是 Java 提供的用于多线程处理的工具类库,来看其中的常用工具类的作用,如下图所示。 如上图所示,第一行的类都是基本数据类型的原子类,包括 At 阅读全文
posted @ 2022-02-24 10:00 Nausicaa0505 阅读(125) 评论(0) 推荐(0) 编辑
摘要:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=1#/detail/pc?id=6 考察点讲解完本课时的知识点,总结下面试考察点。 要理解线程同步与互斥的原理,包括临界资源、临界区的概念,知道重量级锁、轻量级锁、自旋锁、偏向锁、重入锁、读 阅读全文
posted @ 2022-02-24 09:41 Nausicaa0505 阅读(37) 评论(0) 推荐(0) 编辑
摘要:转 https://www.cnblogs.com/lfs2640666960/p/11488629.html 金九银十跳槽季已经开始,作为 Java 开发者你开始刷面试题了吗?别急,我整理了71道并发相关的面试题,看这一文就够了! 1、在java中守护线程和本地线程区别? java中的线程分为两种 阅读全文
posted @ 2019-11-06 10:18 Nausicaa0505 阅读(209) 评论(0) 推荐(0) 编辑
摘要:https://cloud.tencent.com/developer/article/1451817 阅读全文
posted @ 2019-11-01 13:11 Nausicaa0505 阅读(88) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/heyq/p/9013783.html 阅读全文
posted @ 2019-10-29 10:15 Nausicaa0505 阅读(118) 评论(0) 推荐(0) 编辑
摘要:死锁发生的四个必要条件 互斥:一个资源每次只能被一个进程使用,即在一段时间内某资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。 请求与保持:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。 不可抢 阅读全文
posted @ 2019-10-19 21:39 Nausicaa0505 阅读(212) 评论(0) 推荐(0) 编辑
摘要:转 :https://www.jb51.net/article/137750.htm 怎么使用数组来实现队列,我们需要四个变量:Object[] array来存储队列中元素,headIndex和tailIndex分别记录队列头和队列尾,count记录队列的个数。 1.因为数组的长度是固定,所以当co 阅读全文
posted @ 2019-09-19 09:30 Nausicaa0505 阅读(893) 评论(0) 推荐(0) 编辑
摘要:Semaphore 可以认为是广义锁 ,共享锁, Semaphore可以理解为信号量,用于控制资源能够被并发访问的线程数量,以保证多个线程能够合理的使用特定资源。Semaphore就相当于一个许可证,线程需要先通过acquire方法获取该许可证,该线程才能继续往下执行,否则只能在该方法出阻塞等待。当 阅读全文
posted @ 2019-09-19 08:52 Nausicaa0505 阅读(138) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/xiaoxi/p/7910868.html 总结 1、如果生产者、消费者都是1个,那么flag标记可以用if判断。这里有多个,必须用while判断。 2、在while判断的同时,notify函数可能唤醒本类线程(如一个消费者唤醒另一个消费者),这会导致 阅读全文
posted @ 2019-09-19 08:48 Nausicaa0505 阅读(164) 评论(0) 推荐(0) 编辑
摘要:说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法,由于run()方法返回值为void类型,所以在执行完任务之后无法返回任何结果。 Callable位于java.util.concurrent包下,它也是一个接口,在它里面也只声明了一个方法,只不过这个方法 阅读全文
posted @ 2019-09-19 08:46 Nausicaa0505 阅读(112) 评论(0) 推荐(0) 编辑
摘要:转:https://www.jianshu.com/p/fb79f074be28 数组的长度在创建时就必须确定,如果数组长度小了,那么ArrayBlockingQueue队列很容易就被阻塞,如果数组长度大了,就容易浪费内存。 而队列这个数据结构天然适合用链表这个形式,而LinkedBlockingQ 阅读全文
posted @ 2019-09-03 12:33 Nausicaa0505 阅读(403) 评论(0) 推荐(0) 编辑

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