多线程
文章平均质量分 90
lily-0622
这个作者很懒,什么都没留下…
展开
-
【多线程】-悲观锁和乐观锁
什么是悲观锁与乐观锁? 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 悲观锁 总是假设最坏的情况,每次取数据时都认为其它线程会修改,所以都会加锁(读锁、写锁、行锁等),当其它线程想要访问数据时,都需要阻塞挂起。可以依靠数据库实现,如行锁、读锁和写锁等,都是...原创 2019-07-30 16:49:32 · 153 阅读 · 0 评论 -
【多线程】-synchronized和volatile
(1)关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,但是synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字在执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。 (2)多线程访问volatile不会发生阻塞,而sy...原创 2019-07-30 09:42:20 · 148 阅读 · 0 评论 -
【多线程】-线程安全
原因: 当多个线程同时共享,同一个全局变量或静态变量。做写的操作时,可能发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 解决方案: 方式一:内置锁Synchronized Synchronized保证线程原子性,当线程进入方法的时候,自动获取锁,一旦锁被其它线程获取之后,其它的线程就会等待。 方式二:同步方式 1、同步代码块 Synchr...原创 2019-07-30 09:07:09 · 119 阅读 · 0 评论 -
多线程-sleep和wait的区别
wait和sleep区别 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。 2. wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException。 如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wa...原创 2019-07-28 21:07:19 · 459 阅读 · 0 评论 -
【多线程】-阻塞队列与非阻塞队列
1.阻塞队列和非阻塞队列的区别:阻塞队列可以阻塞,非阻塞队列不能阻塞,只能使用队列wait(),notify()进行队列消息传送。而阻塞队列当队列里面没有值时,会阻塞直到有值输入。输入也一样,当队列满的时候,会阻塞,直到队列不为空。 2.阻塞队列 ArrayBlockingQueue:基于数组实现的一个阻塞队列,在创建ArrayBlockingQueue对象时必须制定容量大小。并且可...原创 2019-07-14 21:07:58 · 548 阅读 · 0 评论 -
多线程批量导入
多线程批量导入 一、切入主题 本文主要解决: 多线程Excel导入 解决分布式事务 二、需求说明 分布式系统,向系统中批量导入信息,信息需要存储在新生表、学生表、权限表。 步骤: 1.得到三个list ,分别批量向数据库中存。 2.使用多线程对分批进入数据库 情况说明: 因为是学生和新生是一个库,用户是一个表。如果两个库在不同的物理节点上,就会有分...原创 2018-10-14 21:26:03 · 1345 阅读 · 8 评论