jstack是java虚拟机自带的一种堆栈跟踪工具。 功能 jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停 ...
分类:
编程语言 时间:
2018-11-10 22:40:00
阅读次数:
229
线程的互斥锁 死锁 from threading import Thread,Lock import time,random mutex1 = Lock() mutex2 = Lock() def fun1(): mutex1.acquire() print("抢到了锁1") time.sleep( ...
分类:
编程语言 时间:
2018-11-09 21:38:48
阅读次数:
230
一.什么是死锁? 死锁是由于两个或以上的线程互相持有对方需要的资源,导致这些线程处于等待状态,无法执行。 二.产生死锁的四个必要条件 1.互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。 2.请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已经获得的资源不释放。 3. ...
分类:
其他好文 时间:
2018-11-06 13:42:40
阅读次数:
158
> 面试题附带答案 1. junit用法,before,beforeClass,after, afterClass的执行顺序 2. 分布式锁 3. nginx的请求转发算法,如何配置根据权重转发 4. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap) ...
分类:
其他好文 时间:
2018-10-25 17:56:12
阅读次数:
181
有时会有这样一个情况: 因为函数的写法不对而导致执行时间很长或者死循环,这时候执行函数的客户端又挂掉了无法终止。如果我们不作处理的话,下次对这个函数进行的任何操都会出现无响应状态(线程会依次waiting排队) 解决办法: show full processlist 查看正在执行的线程并找到锁死的线 ...
分类:
数据库 时间:
2018-10-14 23:01:29
阅读次数:
263
一、死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程, 如下就是死锁 死锁 from threading ...
分类:
编程语言 时间:
2018-10-12 13:58:32
阅读次数:
174
1.Java多线程中的死锁 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不能正常运行.形象的说就是:一个宝藏需要两把钥匙来打开,同时间正好来了两个人,他们一人一把钥匙,但是双方都再等着对方能交出钥匙来打开宝藏,谁都没释放自己的那 ...
分类:
编程语言 时间:
2018-10-08 19:36:53
阅读次数:
121
并发编程--多线程2 实战部分: threading模块介绍 开启线程的两种方式 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 练习 线程相关的其他方法 守护线程 python GIL(Global Interpreter Lock) 同步锁 死锁现象与递归锁 信号量Semaphore ...
分类:
编程语言 时间:
2018-09-10 22:25:27
阅读次数:
367
1、死锁含义 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P ...
分类:
编程语言 时间:
2018-09-10 21:54:40
阅读次数:
244
GIL全局解释器锁 GIL本质就是一把互斥锁,和所有互斥锁本质一样,都是把并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务修改,进而保证数据安全 保护不同的数据的安全,就应该加不同的锁。例如 IO模式下的就应该用多线程 (打开文件,time.sleep,输入输出等等),而计算相关的就是用 ...
分类:
编程语言 时间:
2018-09-07 20:43:07
阅读次数:
288