Java中J.U.C扩展组件之Fork,join

并为每个队列创建一个单独的线程来执行队列里的任务,工作窃取(work-stealing)算法是指某个线程从其它队列窃取任务执行,于是它就去其他线程的队列里窃取一个任务来执行,执行这个任务的工作线程

Java同步组件之Condition,FutureTask

之后可以在外部通过FutureTask的get方法异步获取执行结果,某个或某些线程等待某个 ,只有当该条件具备( 或者 方法被调用)时,这些等待线程才会被唤醒,从而重新争夺锁,可用于异步获取执行结果或取消执行任务的场景,是多线程之间协调通信的工具类,除了有 ,还有可能存在 队列(不存在或者存在一个以上,即多个等待队列)

Linux查看登录日志

当然也可以通过 last -f 参数指定读取文件,当然也可以通过 last -f 参数指定读取文件,它默认读取的是 / var/log/wtmp 文件的信息,只不过它默认读取的是 / var/log/btmp 文件的信息

Java同步组件之CyclicBarrier,ReentrantLock

ReentrantLock:是一个重入锁,一个线程获得了锁之后仍然可以反复加锁,不会出现自己阻塞自己的情况,允许一个或多个线程,等待其它一组线程完成操作,再继续执行,在没有任何读写锁的时候才可以取得写入锁(悲观读取,就会造成等待获取写锁的线程饥饿

Nginx中break和last的区别

命中location1,浏览器地址栏没有变,直接去找 文件,由于没有这个文件所以返回404,last表示重写后跳到location块再次用重写后的地址匹配,重写后的规则,重写后的规则

Java同步组件之CountDownLatch,Semaphore

经常用于限制获取某种资源的线程数量,其内部是基于 的共享模式,AQS的状态可以表示许可证的数量,许可证数量不够线程被挂起;而一旦有一个线程释放资源,那么可唤醒等待队列中的线程继续执行,CountDownlatch指定时间完成任务,如果在规定时间内完成,则等待之前的等待线程( )继续执行,tryAcquire(long timeout,TimeUnit timeUnit) : boolean 尝试获取许可的时候可以等待一段时间,翻译过来就是信号量, 可以阻塞进程并控制同时访问的线程数,通过 获取一个许可,如果没有就等待,而 释放一个许可, 有点类似锁

AQS同步队列结构分析

同步器队列遵循 ,首节点是获取锁成功的节点,首节点的线程在释放锁时,会唤醒后续节点,而后继节点在成功获取到锁后,会把自己设置成首节点,设置首节点是由获取锁成功的线程来完成的,由于只有一个线程能成功获取到锁,所以设置首节点不需要,因此同步器提供了一个基于CAS的设置尾节点的方法 ,它需要传递当前线程认为的尾节点和当前节点,一个指向尾节点(tail),没有获取到锁的线程,AQS使用的同步队列是基于一种CLH锁算法来实现

Java并发J.U.C 之 AQS

AQS的模板方法acquire通过调用子类自定义实现的tryAcquire获取同步状态失败后->将线程构造成Node节点(创建一个独占式节点 )(addWaiter)->将Node节点添加到同步队列对尾(addWaiter)->节点以自旋的方法获取同步状态(acquirQueued),通过调用acquireShared(int arg)方法可以共享式得获取同步状态,只有其前驱节点是头节点的时候才会尝试获取同步状态,共享式释放同步状态状态是通过调用releaseShared(int arg)方法

Java并发容器J.U.C

原因分析: 在进行 的时候,插入的元素超过了容量就会发生 扩容,这个操作会把原来的元素 到新的扩容新的数组,在多线程情况下,如果此时有其它线程在进行 操作,如果 值相同,可能出现在同一数组下用链表表示,造成闭环,导致 的时候出现死循环,所以是线程不安全的,它是线程安全的,它涉及到多线程的操作都 关键字来锁住整个 ,这就意味着所有的线程都在竞争同一把锁,在多线程环境下是安全的,但是效率很低,但是对于批量操作 , , 并不能保证原子操作,所以是线程不安全的,原因是 , , 底层调用的还是 , , 方法,在批量操作时,只能保证每一次的 , , 是原子性的(即在进行 , , ,不会被其它线程打断),而不能保证每一次批量操作都不会被其它线程打断,因此在 、 、 和 操作时,在多线程环境下,使用 进行 操作会引起死循环,导致 利用率到 ,所以在多线程环境不能随意使用

Java同步容器

是线程同步容器, , , 都是被 修饰的,为什么会有线程安全问题呢?,同步容器采用 进行同步,因此执行的性能会受到影响,并且同步容器也并不一定会做到线程安全,同步容器虽然是线程安全的,但是不代表在任何环境下都是线程安全的,同步容器不一定就线程安全

入门小站