
多线程
文章平均质量分 58
it's okey
这个作者很懒,什么都没留下…
展开
-
java并发-ThreadLocald详解
ThreadLocal的思想基础ThreadLocal的思想基础,来自于线程封闭来实现线程安全的思想当可变的共享资源,在多线程下就可能出现错误的结果,造成线程不安全;要达到线程安全,可以把可变资源变为不可变资源,共享资源变为线程私有或使用同步机制来确保安全。这里使用的是线程封闭的思想ThreadLocal的结构组成ThreadLocal的结构Thread类有一个类型为ThreadLocal.ThreadLocalMap的实例变量threadLocals,也就是说每个线程有一个自己的Thre原创 2021-08-28 17:17:30 · 174 阅读 · 0 评论 -
java并发-线程池
线程池提出的思想基础降低资源的消耗。通过重复利用已经创建的线程降低线程创建和销毁的消耗提高响应速度。当任务到达的时候,任务不需要等待线程创建直接可以执行提高对线程的可管理性。线程是稀缺资源,如果无线的创建,不仅会消耗资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。线程池的实现原理线程池框架的结构(主要由三部分组成)任务(Runnable / Callable)我们将我们的结果封装到Runnable或是Callable中,交给ThreadPoolExecutor或Sc原创 2021-08-27 14:10:09 · 176 阅读 · 0 评论 -
synchronized的有序性原理
一方面加了锁之后,只能有一个线程获得到了锁,获得不到锁的线程就要阻塞。所以同一时间只有一个线程执行,相当于单线程,而单线程的指令重排是没有问题的。另一方面还有就是在 进入synchronized代码块会先添加一个 acquire barrier 在最后添加一个release barrier 保证同步代码块中的代码不能和同步代码块外面的代码进行指令重排,在其内部还是会发生指令重排但基本不会影响结果总结,synchronized可以保证有序性但是不能避免指令重排,在双重检验的单例模式中,必须加volat.原创 2021-08-10 16:31:53 · 1640 阅读 · 0 评论 -
java多线程 - 虚假唤醒
线程也可以唤醒,而不会被通知,中断或超时,即所谓的虚假唤醒 。 虽然这在实践中很少会发生,但应用程序必须通过测试应该使线程被唤醒的条件来防范,并且如果条件不满足则继续等待。 换句话说,等待应该总是出现在循环中,就像这样:synchronized (obj) { while (<condition does not hold>) obj.wait(timeout); ... // Perform action appropriate原创 2021-03-30 14:10:35 · 137 阅读 · 0 评论 -
java多线程 - hashmap在jdk1.7中的多线程死锁问题
扩容死锁(hashmap在jdk1.7中的多线程死锁问题)hashmap 的死锁问题主要是在扩容的时候,而扩容的方法是 transfer ,对方法 transfer 简化如下, void transfer(Entry[] newTable, boolean rehash) { for (Entry<K,V> e : table) { while(null != e) { Entry<K,V> next = e.n原创 2021-03-24 21:39:32 · 489 阅读 · 0 评论 -
java多线程-线程安全单例模式(更新中)
单例模式概述单例模式有很多实现方法,饿汉、懒汉、静态内部类、枚举类,试分析每种实现下获取单例对象即调用getInstance)时的线程安全,并思考注释中的问题饿汉式:类加载就会导致该单实例对象被创建懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会创建饿汉单例public final class Singleton implements Serializable { privateSingleton() {} private static final Singleton I原创 2021-03-20 16:42:31 · 319 阅读 · 0 评论 -
java多线程编程 - 模式 -同步模式之保护性暂停模式
同步模式之保护性暂停即 Guarded Suspension,用在一个线程等待另一个线程的执行结果要点有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)JDK 中,join 的实现、Future 的实现,采用的就是此模式因为要等待另一方的结果,因此归类到同步模式实现classGuardedObject { privateObjectresponse; private原创 2021-03-19 11:48:56 · 130 阅读 · 0 评论