![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 65
偷偷学习被我发现
记录个人点滴
展开
-
程序、进程、线程的基本概念、信号量的PV操作、前趋图的PV操作
进程控制块PCB的组织方式:顺序方式、链接方式、索引方式、Hash。前趋图有时候可以不考虑信号量,主要关注节点间(进程间)的PV操作。进程间的同步关系与互斥关系。原创 2023-03-04 19:14:17 · 1329 阅读 · 0 评论 -
CountDownLatch使用
补原创 2022-12-18 12:02:43 · 85 阅读 · 1 评论 -
并发、并行和多线程关系
倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这三个步骤,所以并发是宏观的观念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上多个几乎同时到达的请求同时在被处理。原创 2022-11-19 20:36:07 · 765 阅读 · 0 评论 -
在JVM 中进程与线程关系、介绍线程:程序计数器、本地方法栈、虚拟机栈
在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的,native是有实现体的,只不过这些实现体是非java的。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main函数所在的线程就是这个进程中的一个线程,也称。多线程同时执行,相互抢夺CPU,Thread类是java.lang包下的一个常用类,每一个Thread类的对象,就代表一个处于某种状态的线程.得多,也正因为如此,原创 2022-11-19 02:27:16 · 462 阅读 · 0 评论 -
Linux的4种锁机制:互斥锁、读写锁、自旋锁、RCU
注意: 写锁会阻塞其它读写锁。写者优先于读者(一旦有写者,则后续读者必须等待, 唤醒时优先考虑写者)。在修改数据时,首先需要读取数据,然后生成一个副本,对副本进行修改。使用RCU时,读者几乎不需要同步开销,既不需要获得锁,也不使用原子指令,不会导致锁竞争,因此就不用考虑死锁问题了。而对于写者的同步开销较大,它需要复制被修改的数据,还必须使用锁机制同步并行其它写者的修改操作。但是当获取锁操作失败时,不会进入睡眠,而是会在原地自旋,直到锁被释放。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒。原创 2022-11-19 01:09:04 · 485 阅读 · 0 评论 -
分布式锁原理和方案简介
如果需要对某一个共享变量进行多线程同步操作的时候,存在对同一数据的抢占问题,会出现脏读等情况。为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API。但是,随着业务发展的需要,原单体单机部...原创 2019-09-10 15:30:48 · 130 阅读 · 0 评论 -
读锁、写锁、乐观锁、悲观锁、行锁、表锁
读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。某回话给某个表加了读锁,所有的回话都能对该表进行读操作,不能进行写操作,除非该会话释放读锁。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。在执行语句后面加上lock in share mode就代表对某些资源加上共享锁命令行窗口1:SELECT ...原创 2019-08-22 19:24:30 · 422 阅读 · 0 评论 -
线程休眠&&中断线程&&stop和interrupt的区别
线程休眠 public static void sleep(long millis)public class ThreadDemo { public static void main(String[] args) { MyRunnable mr = new MyRunnable(); Thread t1 = new Thread(mr, "时钟"); t1.start();...原创 2019-08-18 22:05:32 · 457 阅读 · 0 评论 -
线程开启的三种方式
什么是进程?正在执行的程序什么是线程?具有完成独立任务的一条执行路径什么是多进程?多个应用程序的集合什么是多线程?一个进程可以有一条线程,一个进程也可以有多条线程多进程的好处?能够合理的提高CPU的使用率 提高CPU的使用率多线程的好处?提高了进程和CPU的使用率为什么需要开启多线程?什么时候开启线程?1.能够让多个进程看上去像同时执行2.防止单线程出现线程阻塞3.用...原创 2019-08-18 20:20:56 · 363 阅读 · 0 评论 -
获取和设置当前线程名称&&获取和线程优先级
Java是如何对线程进行调度的?Java虚拟机采用抢占式调度模型:优先让可运行池中处于就绪态的线程中优先级高的占用CPU,如果可运行池中线程的优先级相同,那么就随机选择一个线程,使其占用CPU,处于运行状态的线程会一直执行,直至它不得不放弃CPU,一个线程会因为以下原因放弃CPU:(1)Java虚拟机让当前线程暂时放弃CPU,转到就绪态,使其他线程获得运行机会(2)当前线程因为某些原因而处...原创 2019-08-18 20:48:26 · 690 阅读 · 0 评论