多线程
燕少༒江湖
只要努力付出,相信自己,总会有收获,正所谓“天道酬勤”,努力的人是幸运儿!
展开
-
ThreadLocal和InheritableThreadLocal学习笔记
ThreadLocal为多线程并发问题提供了一种新的解决思路,因为它可以单独给每一个线程提供独立的变量副本,这样每一个线程就可以只修改自己的副本变量,互不影响。 场景1: 每一个线程可以保存一个独立副本,线程A的修改,不影响线程B;比如SimpleDateFormat在多并发场景下就不能使用,可以使用ThreadLocal解决这个问题; 场景2: 数据库主从分离,比如某一个查询服务,这个过程需要查询多张表,涉及到多个DAO层,我们可以在SERVICE层指定使用主库或者存库,然后整个过程就只使用主库、或者只原创 2020-12-28 16:29:01 · 214 阅读 · 0 评论 -
多线程-----单线程之间的通信wait和notify
一、场景 有若干订单存放到list集合或者队列中,我们不知道什么是满了或者没有订单, 第一种方式:一般会隔固定时间去看list中是否有时间,有了则进行处理,没有则退出,这样一直循环。 第二种方式:就是利用线程之间的通信机制,也就是wait和notify,如果list存放的订单达到了最大限制或者list为空(大小为0),则wait,阻塞线程,否则notify,唤醒线程。 二、wait和not...原创 2018-08-13 12:01:58 · 652 阅读 · 0 评论 -
java-多线程-----多线程通信wait和notifyAll
多线程通信,使用notifyAll将所有在wait set中的阻塞线程全部唤醒,然后所有被唤醒的线程重新抢monitor锁,特别注意的地方,就是不能使用if判断队列是否满了或者为空(大小为0),如果使用if进行判断,线程直接从wait方法之后开始执行,这样就不会再判断是否满足条件,这样造成空指针,或者其它严重情况。因此,在多线程中使用while作为判断条件。 1、Order p...原创 2018-08-13 14:37:15 · 249 阅读 · 0 评论