![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
较真的菜鸟
一直在模仿,从未被超越,我们从不生产代码,只是代码的搬运工,如有错误欢迎大佬纠正,内容如有侵权,请联系本人,❤,有些博客是一时想起来就写了点,由于时间问题没能写完,后面会持续更新
展开
-
ThreadPoolExecutor线程池的使用详解
文章目录workQueue任务队列直接提交队列有界的任务队列优先任务队列拒绝策略ThreadFactory自定义线程创建 在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式,这一方面是由于jdk中Executor框架虽然提供了如newFixedThrea转载 2020-12-27 18:57:12 · 1435 阅读 · 0 评论 -
Java中的锁分类与使用
文章目录Java锁的种类乐观锁/悲观锁乐观锁数据版本机制CAS操作悲观锁独享锁/共享锁互斥锁/读写锁可重入锁公平锁/非公平锁 Java锁的种类 在笔者面试过程时,经常会被问到各种各样的锁,如乐观锁、读写锁等等,非常繁多,在此做一个总结。介绍的内容如下: 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 以上是一些锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。 乐转载 2020-12-27 12:04:23 · 92 阅读 · 0 评论 -
Object类中的wait()方法和notify()方法
转载:https://blog.csdn.net/wodewutai17quiet/article/details/72830688 【Object类中的wait()方法和notify()方法】 wait(): public final void wait(long timeout) throws InterruptedException 参数:等待的时间,可选,不填则默认为0。 说明: 1>使线程主动释放对象锁,并进入等待状态,直到它被其他线程通过notify()或notify转载 2020-12-26 22:08:25 · 414 阅读 · 0 评论 -
Thread类的常用方法
String getName() 返回该线程的名称。 void setName(String name) 改变线程名称,使之与参数 name 相同。 int getPriority() 返回线程的优先级。 void setPriority(int newPriority) 更改线程的优先级。 boolean isDaemon() 测试该线程是否为守护线程。 void setDaemon(boolean on) 将该线程标记为守护线程或用户线程。 static void sleep(lon.转载 2020-12-26 21:25:05 · 464 阅读 · 0 评论 -
并发编程实战
转载:https://www.cnblogs.com/wadmwz/p/10504164.html 并发编程的三个核心问题: 分工 : 高效的拆解任务分给线程 同步 : 线程之间的协作 互斥 : 保证同一时刻只允许一个线程访问共享资源 这个其实不难理解,做个简单的比喻,我们团队做一个项目的时候肯定是先分配任务(分工),然后等到任务完成进行合并对接(同步),在开发过程中,使用版本控制工具访问,一个代码只能被一个人修改,否则会报错,需要meger(互斥). 核心: 分工(拆分) - 同步(一个线程执行完成如转载 2020-12-26 15:22:13 · 228 阅读 · 0 评论 -
初步了解线程和线程之间通信
线程安全 如果开启多个线程执行后的结果和我们预想的结果不一致,那么就是线程不安全的 线程的流转状态 初始化 实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态,还没调用start方法; 运行(RUNNABLE) Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于原创 2020-11-22 21:35:08 · 125 阅读 · 1 评论 -
从硬件方面讲解volatile和synchronized关键字的语义
为什么会用到这两个关键字 java支持多线程同时访问一个对象或者对象的成员变量,(如果是方法内的局部变量不涉及线程安全,因为方法是在方法栈中执行,而方法栈是线程私有的),由于每个线程可以拥有这变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量不一定是最新的。 volatile关键字 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该原创 2020-11-14 10:04:25 · 98 阅读 · 0 评论