随笔分类 -  JavaSE-多线程

摘要:Exchanger的功能可以使2个线程之间传输数据,它比生产者消费者模式使用的wait/notify要更加方便,类Exchanger中的exchange()方法具有阻塞的特色,也就是此方法被调用后等待其他线程来取得数据,如果没有其他线程取得数据,则一直阻塞等待。Exchanger主要有两个方法 :e 阅读全文
posted @ 2021-02-21 13:46 寻找风口的猪 阅读(118) 评论(0) 推荐(0) 编辑
摘要:什么是Semaphore信号量: Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 正常的锁(synchronized锁或Lock锁)在任何时刻都只允许一个任务访问一项资源,而Semaphore允许n个任务访问这个资源。 API: Se 阅读全文
posted @ 2021-02-09 09:00 寻找风口的猪 阅读(191) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch介绍: CountDownLatch是java.util.concurrent包中的一个类。它主要用来协调多个线程之间的同步,起到一个同步器的作用。举个例子,一个旅游团有10个人,参观景点。大家自由活动。等大家都从景点出口出来集合之后再一起坐车去吃饭。每个人参观景点的速度 阅读全文
posted @ 2021-02-08 16:28 寻找风口的猪 阅读(132) 评论(0) 推荐(0) 编辑
摘要:Java7引入了ForkJoinPool框架。这个框架的主要应用场景是把大任务拆解成小的任务并行执行。先看看ForkJoinPool的类结构和RecursiveTask的类结构: 再看一下API文档 我们主要关注文档中的几个方法,也是我们经常会用到的几个方法。(ps:ForkJoinPool适用于C 阅读全文
posted @ 2021-02-04 17:55 寻找风口的猪 阅读(381) 评论(0) 推荐(0) 编辑
摘要:1、ThreadLocal是什么? ThreadLocal这个类提供线程局部变量,这些变量与其他正常的变量不同之处在于每一个访问该变量的线程在其内部都有一个独立的初始化的变量副本。ThreadLocal实例变量通常采用private static在类中修饰。 只要ThreadLocal的变量能被访问 阅读全文
posted @ 2020-02-09 16:18 寻找风口的猪 阅读(374) 评论(0) 推荐(0) 编辑
摘要:final修饰数据: final修饰基本数据类型,使数值恒定不变,修饰对象引用,final使引用恒定不变 final修饰的成员变量必须要被初识化 final可以修饰方法中的参数列表,被修饰的参数无法在方法中更改参数引用所指向的对象 final和static修饰的成员变量表示常量 final修饰方法: 阅读全文
posted @ 2018-11-13 06:41 寻找风口的猪 阅读(249) 评论(0) 推荐(0) 编辑
摘要:Lock与synchronized Lock和synchronized在功能上是一样的。不过Lock提供了一些其他功能,包括定时的锁等待、可中断的锁等待、公平性,以及实现非块结构的加锁。 从性能上Lock的实现类ReentrantLock在JDK5.0之前要好于synchronized,在JDK6. 阅读全文
posted @ 2018-11-09 22:27 寻找风口的猪 阅读(308) 评论(0) 推荐(0) 编辑
摘要:1、synchronized的几种基本用法: https://gitee.com/play-happy/base-project/tree/developer/src/main/java/org/burning/sport/javase/thread/synchronizeds ps: synchr 阅读全文
posted @ 2018-09-30 06:05 寻找风口的猪 阅读(273) 评论(0) 推荐(0) 编辑
摘要:Thread包含interrupt()方法,因此你可以终止被阻塞的任务,这个方法将设置线程的中断状态。如果一个线程已经被阻塞,或者试图执行一个阻塞操作。那么设置这个线程的中断状态将 抛出InterruptedException。当抛出改异常或者该任务调用Thread.interrupted()时,中 阅读全文
posted @ 2018-09-30 05:52 寻找风口的猪 阅读(2033) 评论(0) 推荐(0) 编辑
摘要:一、基本概念: 1、volatile是轻量级的synchronized,在多核处理器开发中保证了共享变量的“可见性”。可见性的意思是,当一个线程修改一个共享变量时,另一个线程能读到这个修改的值。 2、volatile在修饰共享变量进行写操作时,在多核处理器下会引发两件事情: 1)将当前处理器缓存行的 阅读全文
posted @ 2018-09-01 22:04 寻找风口的猪 阅读(794) 评论(0) 推荐(0) 编辑
摘要:一、业务场景 业务场景为,购买商品的过程要对余额进行查询与修改,大致的业务流程如下: (1)从数据库查询用户现有余额 SELECT money FROM t_yue WHERE uid=$uid,不妨设查询出来的$old_money=100元 (2)业务层实施业务逻辑,比如购买一个80元的商品,并且 阅读全文
posted @ 2018-03-19 23:10 寻找风口的猪 阅读(562) 评论(0) 推荐(1) 编辑
摘要:在Java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束。 阅读全文
posted @ 2017-12-06 14:28 寻找风口的猪 阅读(497) 评论(0) 推荐(0) 编辑

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