![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
我爱吃果冻
这个作者很懒,什么都没留下…
展开
-
mysql调优
1. show profile (查看SQL语句的性能)1. show profile 查询近期执行的sql 语句(会返回近期执行的sql列表)2. show profile for query 2 (查看近期列表的第二条sql)all:显示所有性能信息 show profile all for query nblock io:显示块io操作的次数 show profile block io for query ncontext switches:显示上下文切换次数,被动和主动 show p原创 2021-04-14 10:12:36 · 93 阅读 · 0 评论 -
线程池
ThreadPoolExecutor定义了七大核心属性corePoolSize(int):核心线程数量。默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到任务队列当中。线程池将长期保证这些线程处于存活状态,即使线程已经处于闲置状态。除非配置了allowCoreThreadTimeOut=true,核心线程数的线程也将不再保证长期存活于线程池内,在空闲时间超过keepAliveTime后被销原创 2021-04-14 10:09:31 · 910 阅读 · 0 评论 -
juc
JUC提供的一些实现:Atomic : AtomicInteger 原子操作类Locks : Lock, Condition, ReadWriteLock 可重入读写锁Collections : Queue, ConcurrentMap 并发集合Executer : Future, Callable, Executor 线程执行池,异步Future等Tools : CountDownLatch, CyclicBarrier, Semaphore 减数器,等待器,信号量我个原创 2021-04-14 10:08:28 · 74 阅读 · 0 评论 -
concurrentHashMap
concurrentmap1.concurrentHashmap是设计非阻塞的,在更新的时候会锁住局部部分数据。但不会把整个表都锁住。同步读取操作完全是非阻塞的。在保证合理同步的前提下效率很高。坏处不能保证反应最近的更新。例如线程A调用putAll大量写入数据,期间线程B调用get,则只能get到目前为止顺利插入的数据。2.JDK1.8版本来看ConcurrentHashMap的数据结构已经趋近于hashmap,相对而言concurrentHashmap只是增加了同步的操作来控制并发。JDK1.7 使原创 2021-04-14 10:07:48 · 489 阅读 · 0 评论 -
CAS
cascas是检查并替换。原理: 两个线程同时访问主内存,这时主内存的共享变量是3,线程1拿取到3,但是这时开始GC,线程1挂起。这时线程2到来,线程二也在主内存中拿去到3,并对主内存的3进行修改,变成4。线程1这时结束挂起。再来主内存替换时,发现原值已经被替换。那么他会从头再来一次,拿取到4,进行操作。直到他拿到的值,在替换的时候和主内存的值相同时,才进行替换。只就是CAS原理保证原子性1.cas保证原子性,但是不能解决ABA的问题2.Synchorized保证原子性: java还提供了lock原创 2021-04-14 10:07:20 · 191 阅读 · 2 评论 -
并发资源控制
1. 控制资源并发访问–SemaphoreSemaphore可以理解为信号量,用于控制资源能够被并发访问的线程数量,以保证多个线程能够合理的使用特定资源。Semaphore就相当于一个许可证,线程需要先通过acquire方法获取该许可证,该线程才能继续往下执行,否则只能在该方法出阻塞等待。当执行完业务功能后,需要通过release()方法将许可证归还,以便其他线程能够获得许可证继续执行。Sem...转载 2019-06-17 11:44:57 · 395 阅读 · 0 评论 -
关于零拷贝的一些理解
关于零拷贝的一些理解零拷贝"零拷贝"中的"拷贝"是操作系统在I/O操作中,将数据从一个内存区域复制到另外一个内存区域. 而"零"并不是指0次复制, 更多的是指在用户态和内核态之前的复制是0次.CPU COPY通过计算机的组成原理我们知道, 内存的读写操作是需要CPU的协调数据总线,地址总线和控制总线来完成的因此在"拷贝"发生的时候,往往需要CPU暂停现有的处理逻辑,来协助内存的读写.这种...转载 2019-08-07 15:59:43 · 164 阅读 · 0 评论