进程:操作系统资源分配的基本单位,一个进程可以有多个线程线程:任务调度和执行的基本单位,线程是进程的一部分内存分配:进程:系统运行的时候为每个进程分配不同的内存空间,线程:线程所使用的资源是它所属的进程的资源进程:正在执行的程序。 多个进程同时执行,顺序是随机的。程序:没有执行的代码 永久性 死锁: ...
分类:
编程语言 时间:
2020-07-31 19:24:17
阅读次数:
93
避免死锁 在有些情况下死锁是可以避免的。本文将展示三种用于避免死锁的技术: 加锁顺序 加锁时限 死锁检测 加锁顺序 当多个线程需要相同的一些锁,但是按照不同的顺序加锁,死锁就很容易发生。 如果能确保所有的线程都是按照相同的顺序获得锁,那么死锁就不会发生。看下面这个例子: Thread 1: lock ...
分类:
其他好文 时间:
2020-07-29 21:24:07
阅读次数:
74
问题:程序有多少临界资源?需要多少线程锁? 临界资源是没有任何的限制 一般性原则:每一个临界资源都需要一个线程锁进行保护(一 一对应) 线程A和线程B获取线程锁的顺序是不一样的。 线程的死锁概念 -线程间相互等待临界资源而造成彼此无法继续执行 发生死锁的条件: -系统中存在多个临界资源且临界资源不可 ...
分类:
编程语言 时间:
2020-07-27 09:36:52
阅读次数:
75
今天一个电话面试问了这个问题。回来查了下答案,自己也顺带操作一遍,做个记录。之前只知道jstack工具可以查看线程状态这些。比如死锁这些,主要是之前不知道top -H -p pid这个命令的使用,这命令可以看到进程下面线程信息,拿到线程ID,然后再结合jstack命令使用就可以解决这个问题了。下面记 ...
分类:
编程语言 时间:
2020-07-23 22:18:51
阅读次数:
69
public class DeadLock{ static Object o1 = new Object(); static Object o2 = new Object(); public static void main(String[] args) { new Thread(new Runna ...
分类:
其他好文 时间:
2020-07-23 15:51:59
阅读次数:
62
目录结构: (1)锁机制概述 什么是锁,以及为什么使用锁和锁的运作? 锁定机制分类? 按封锁类型分类 按封锁的数据粒度分类 行级锁定 表级锁定 页级锁定 数据库事务机制。 什么叫事务?简称ACID。 事务引起的并发调度问题 理论上的事务的三级封锁协议 事务隔离级别 活锁与死锁的探究 活锁 死锁 (2 ...
分类:
数据库 时间:
2020-07-22 15:35:55
阅读次数:
69
锁是个非常有用的工具,运用场景非常多,因为它使用起来非常简单,而且易于理解。但同时它也会带来一些困扰,那就是可能会引起死锁,一旦产生死锁,就会造成系统功能不可用。让我们先来看一段代码,这段代码会引起死锁,使线程t1和线程t2互相等待对方释放锁。 class DeadLockDemo { privat ...
分类:
编程语言 时间:
2020-07-19 11:36:05
阅读次数:
52
https://mp.weixin.qq.com/s/2obpN57D8hyorCMnIu_YAg ...
分类:
其他好文 时间:
2020-07-18 00:37:13
阅读次数:
99
1.同步块 同步块(synchronized(obj)){ },obj称之为同步监视器 1.obj可以是任何对象,但是推荐使用共享资源作为同步监视器 2.同步方法中无需指定同步监视器,因为同步方法的同步监视器时this即该对象本身,或class即类的模子 同步监视器执行过程 1.第一个线程访问,锁定 ...
分类:
编程语言 时间:
2020-07-17 22:13:14
阅读次数:
67
内核软死锁(soft lockup) 转载自: CSDN静谧星空:https://blog.csdn.net/qq262593421/article/details/107142262 参考地址: https://blog.csdn.net/sunny05296/article/details/82 ...
分类:
其他好文 时间:
2020-07-16 18:15:45
阅读次数:
84