线程
文章平均质量分 94
️小艺的学习旅途
这个作者很懒,什么都没留下…
展开
-
线程安全(解决方式)
在多线程下和单线程下执行相同的操作结果相同即为线程安全。对于多个线程,操作同一个共享数据(比如堆里的对象,方法区中的数量,静态变量等):如果都是读操作,不存在安全问题如果存在写操作,就会存在线程安全问题。原创 2023-03-29 09:34:24 · 450 阅读 · 2 评论 -
Javaee - 线程
进程:进程是操作系统对一个正在运行的程序的一种抽象,就是可以把进程看作程序的一次运行程序。比如运行一个app,这个app就可能是一个进程。在操作系统内部,进程是操作系统进行资源分配的基本单位。线程:一个线程就是一个“执行流”,每个线程之间都可以按照顺序执行自己的代码。每个线程都是一个单独的执行流,多个线程之间,也是并发执行的。在操作系统内部,线程是操作系统调度运行的基本单位。这里因为可能有人不懂并发和并行,浅浅解释一下:并行:同一时刻,两个核心,同时执行两个进程,这两个进程就是并行执行的。原创 2023-03-29 16:57:46 · 305 阅读 · 0 评论 -
设计模式 — 单例模式
单例:就是指单个实例,只能创建一个对象/实例。单例模式能保证某个类在程序种只存在唯一实例,而不会创建出多个实例。单例模式具体的实现方式,下面主要介绍两种写法:“饿汉模式''和”懒汉模式“。(1).饿汉模式举例说明:吃完饭之后,就立即去洗碗(2).懒汉模式举例说明:吃完之后,碗放槽里,先不洗,等到下一顿吃的时候,需要用了再去洗碗。通常认为懒汉模式效率更高。针对两种模式,举例:打开一个硬盘上的文件,读取文件内容,并且显示出来。饿汉模式:把所有的内容读取到内存种,并显示出来。原创 2023-03-31 23:36:46 · 47 阅读 · 0 评论 -
多线程 — 阻塞队列
队列:先进先出阻塞队列:1.如果队列为空,尝试出队列,就会阻塞等待,等待到队列不为空为止;2.如果队列未满,尝试入队列,也会阻塞等待,等待到队列不满为止。3.阻塞队列是线程安全的。当我们写多线程代码时,多个线程之间进行数据交互,就可以使用阻塞队列简化代码编写。原创 2023-04-02 15:35:13 · 904 阅读 · 0 评论 -
简述线程池
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池的目的是为了提高效率,线程的创建,虽然比进程高效,但是再频繁创建的情况下,开销也是很大的,所以提前把线程准准备在线程池里,创建线程不是直接从系统申请,而是从池子里申请,线程不用了,就返回给线程池。线程池最大的好处就是减少每次启动,销毁线程的损耗。核心线程数最大线程数如果当前任务很多,线程就会创建出一些“临时线程”(原创 2023-04-03 16:32:28 · 99 阅读 · 0 评论 -
多线程 -- 锁策略/JUC组件/CAS(compare and swap)/线程安全集合类/synchronized工作过程
常见的锁策略一、乐观锁和悲观锁二、轻量级锁和重量级锁三、自旋锁和挂起等待锁四、互斥锁和读写锁五、可重入锁和不可重入锁关于死锁(面试考)六、公平锁和非公平锁CAS的作用1.实现原子类2.实现自旋锁CAS的ABA问题(面试常考)synchronized工作过程偏向锁锁消除锁粗化JUC中的常见组件1.callable2.ReentrantLock(可重入的)3.信号量semaphore线程安全集合类。原创 2023-04-07 14:27:08 · 126 阅读 · 0 评论