并发编程
文章平均质量分 95
星河之码
不惟有超世之才,亦必有坚忍不拔之志。
展开
-
从根本上理解Synchronized的加锁过程
从上面的描述无论是修饰代码块还是修饰方法,都要获取一个Monitor锁,那么什么是Monitor锁呢?Monitor即监视器,可以理解为一个同步工具或一种同步机制,通常被描述为一个对象。每一个Java对象就有一把看不见的锁,称为内部锁或者Monitor锁。任何一个对象都有一个Monitor与之关联,当且一个Monitor被持有后,它将处于锁定状态。Synchronized在JVM中基于进入和退出Monitor对象,通过成对的MonitorEnter和MonitorExit指令来实现方法同步和代码块同步。原创 2022-12-25 23:05:26 · 1180 阅读 · 0 评论 -
一篇ThreadLocal走天下
在面试的时候经常会有人文ThreadLocal是啥,首先明确的一点是:虽然ThreadLocal提供了一种解决多线程环境下成员变量的问题,但是ThreadLocal与线程同步无关,它解决的也不是多线程共享变量的问题。那么ThreadLocal到底是什么,又解决了什么问题呢?原创 2022-12-18 22:10:49 · 537 阅读 · 0 评论 -
并发基础(五):ThreadPoolExecutor源码解析
线程池将【创建出来的线程】都封装为 Worker,以Worker的形式维护线程运行任务的中断控制状态, 线程池模型的本质是生产者-消费者模型,生产者不断地往 workQueue 中丢 task, workQueue 负责源源不断地输送着任务,而 worker(线程) 不断地从workQueue获取任务来执行。原创 2022-12-11 22:03:29 · 538 阅读 · 0 评论 -
并发基础(四):线程池
线程池技术是一种多线程处理形式,将任务添加到队列中,通过线程池中创建出来的现成执行这些任务,省去了创建线程和销毁线程的消耗,我认为有点类似JAVA中Spring托管对象的思想在里面。原创 2022-11-26 23:33:06 · 868 阅读 · 0 评论 -
并发基础(三):线程
进程是资源分配的最小单位,线程是CPU处理器调度的最小单位进程有独立的地址空间,且进程之间互不影响,线程没有独立的地址空间,属于同一进程的多个线程共享同一块地址空间进程切换的开销比线程切换大线程的在同一时刻只会处于一种状态,这些状态【属于是虚拟机状态】,不反映任何操作系统线程的状态。原创 2022-11-12 11:52:31 · 479 阅读 · 0 评论 -
并发基础(二):CPU多级缓存与缓存一致性
为了解决CPU处理器与内存之间的读写效率的问题,在CPU和内存之间加入了高速缓存。那么这个缓存是如何解决它们之间的问题的呢?又带来了什么问题呢?通过这篇文章来了解一下这些问题原创 2022-11-01 10:00:00 · 1028 阅读 · 0 评论 -
并发基础(一):并发理论
线程安全在进程中有多个线程同时运行同一段代码时,线程安全就是通过同步机制保证各个线程都可以正常且正确的执行,运行结果与预期是一致的。线程不安全不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。原创 2022-09-19 23:21:39 · 225 阅读 · 0 评论