随笔分类 - Thread
摘要:1.Wait()与Notity()方法 wait(): 持有锁的线程调用wait()方法后,会一直阻塞,直到有别的线程调用notify()将其唤醒notify(): 只能通知一个等待线程,唤醒任意一个处于wait线程notifyall():将等待队列中的所有线程唤醒,并加入同步队列同步(线程间的通信
阅读全文
摘要:一,介绍 本总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代码。 二,线程间的通信方式 ①同步 这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。 参考示例: public class MyO
阅读全文
摘要:https://blog.csdn.net/weixin_43475124/article/details/83930436
阅读全文
摘要:java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用户下单成功,下面就说一下我能想到的方法,欢迎大家批评指正: https://blog.csdn.ne
阅读全文
摘要:在很多情况下,多线程间仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者模式是一个经典的线程同步以及通信的模型。 假设有这样一种情况,有一个篮子,篮子里只能放一个鸡蛋,A线程专门往篮子里放鸡蛋,如果篮子里有鸡蛋,则一直等到篮子里没鸡蛋,B线程专门从篮子里取鸡蛋,如果篮子里没鸡蛋,则一直等
阅读全文
摘要:一、线程的强制运行 二、线程的休眠 一、线程的强制运行 在线程操作中,可以使用 join() 方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行 class MyThread implements Runnable{//实现 Runnable 接口 pu
阅读全文
摘要:一、锁种类 偏向锁 因为经过HotSpot的作者大量的研究发现,大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个锁,因此如果每次都要竞争锁会增大很多没有必要付出的代价,为了降低获取锁的代价,才引入的偏向锁。 轻量级锁 轻量级锁考虑的是竞争锁对象的线程不多,而且线程持有锁的时间也不长的情景。因
阅读全文
摘要:一张图读懂非公平锁与公平锁 线程的挂起 线程的挂起操作实质上就是线程进入"非可执行"状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。 线程挂起后,可以通过重新唤醒线程来使之恢复运行。 cpu分配的线程片非常的短、同时也非常珍贵。线程的挂起可以避免资源的浪费。 挂
阅读全文
摘要:在Java并发编程中,公平锁与非公平锁是很常见的概念,ReentrantLock、ReadWriteLock默认都是非公平模式,非公平锁的效率为何高于公平锁呢?究竟公平与非公平有何区别呢? 首先先简单从名字上来理解,公平锁就是保障了多线程下各线程获取锁的顺序,先到的线程优先获取锁,而非公平锁则无法提
阅读全文
摘要:https://www.cnblogs.com/superfj/p/7544971.html
阅读全文
摘要:1、线程池的优势 (1)、降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗; (2)、提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行; (3)方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成c
阅读全文
摘要:1、听故事把知识掌握了 在一个村子里面,有一口井水,水质非常的好,村民们都想打井里的水。这井只有一口,村里的人那么多,所以得出个打水的规则才行。村长绞尽脑汁,最终想出了一个比较合理的方案,咱们来仔细的看看聪明的村长大人的智慧。 井边安排一个看井人,维护打水的秩序。 打水时,以家庭为单位,哪个家庭任何
阅读全文
摘要:今天同事突然提出问题说用哪个线程池好,newFixedThreadPool和newCacheThreadPool里选择,说固定大小线程池keepAliveTime=0,线程空闲会立马回收线程从而节约资源,然后另外一个同事说,0是代表永远不回收,我记忆里也是记得0是永久存活,因为网上很多博客啊,资料啊
阅读全文
摘要:String getName() 返回该线程的名称。 void setName(String name) 改变线程名称,使之与参数 name 相同。 int getPriority() 返回线程的优先级。 void setPriority(int newPriority) 更改线程的优先级。 boo
阅读全文