如何检查线程是否死锁了? 产生死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程(线程)使用。(2) 请求与保持条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件 : 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件 : ...
分类:
其他好文 时间:
2020-06-03 20:39:43
阅读次数:
75
第一步,下载python3,之后安装在默认路径下,安装的时候吧环境变量添加。 第二部,执行命令 pip install Jupyter,等待安装完毕 第三部,启动Jupyter,启动命令:jupyter notebook。网页自动启动 之后即可执行Python的程序 如果安装其他的包文件,同样执行命 ...
分类:
编程语言 时间:
2020-06-03 18:48:33
阅读次数:
81
###文章结构 源码:对doReleaseShared()方法的源码进行一些注释 使用场景:介绍doReleaseShared()使用位置,及目的 以写锁开始的队列:分析写锁开始得同步等待队列在唤醒后续读锁节点的过程 以读锁开始的队列 总结 ###源码 具体解析见注释 /** * Release a ...
分类:
其他好文 时间:
2020-06-03 15:54:25
阅读次数:
123
JDK并发包 3.1同步控制 synchronized、obj.wait()、obj.notify() 3.1.1关键字synchronized的功能扩展:重入锁 java.util.concurrent.locks.ReentrantLock类来实现的 手动加锁:lock.lock() 手动解锁: ...
分类:
编程语言 时间:
2020-06-03 13:56:57
阅读次数:
61
今天跑步的时候,想起前一阵被问到的死锁问题还没有好好的看过,刚好简书上有一篇比较细致的文章,这里做下总结. 文章链接: https://www.jianshu.com/p/cab2fbc4b794 总结: 1.这里死锁产生的原因,线程t1等待t2释放mtB,而线程t2等待t1释放mtA. 2.死锁解 ...
分类:
其他好文 时间:
2020-06-03 00:30:55
阅读次数:
73
1 概述 程序运行在服务器上,通过使用服务器的各种资源完成设定的各种任务。我们常常会遇到,网页一直在转圈、页面假死等情况,这些现象被用户认为程序很慢、性能很差。那什么是性能?如何衡量性能? 性能performance即表现,具体来说就是运行在服务器上的程序的运行效率。体现到用户层面的就是等待时间。所... ...
分类:
其他好文 时间:
2020-06-03 00:26:22
阅读次数:
91
多线程程序将单个任务按照功能分解成多个子任务来执行,每个子任务称为一个线程,多个线程共同完成主任务的运行过程,这样可以缩短用户等待时间,提高服务效率。本篇博客将简单介绍Java开发中多线程的使用... ...
分类:
编程语言 时间:
2020-06-02 23:11:37
阅读次数:
93
1. CountDownLatch 1.1 什么是CountDownLatch 如果要用一句话说明CountDownLatch的用处,那就是用来控制一个线程等待多个线程 1.2 CountDownLatch典型应用 假设有一场马拉松比赛,那么对参赛者的排名肯定是在所有参赛者跑完比赛之后进行,即N个线 ...
分类:
其他好文 时间:
2020-06-02 22:56:36
阅读次数:
51
分支的分类 首先我们将分支分为固定的3个分支: test 测试分支,刚刚开发完的功能或者修复的bug,等待测试人员测试。 master 预发布分支,包含通过测试的新功能或bug修复,随时都可以发布。 prod 正式分支,和生产环境跑的代码一致。 两个动态分支,开发新功能的分支名称以“new_”开头, ...
分类:
其他好文 时间:
2020-06-02 13:17:21
阅读次数:
98
300ms点击延迟 移动端的300ms点击延迟是因为移动端可以进行双击缩放的操作,因此浏览器在click之后要等待300ms,看用户有没有下一次点击,也就是判断这次操作是单击还是双击。如果通过监听touchstart事件来替代click事件的话,会导致一些问题:touchstart是手指触摸屏幕就触 ...
分类:
其他好文 时间:
2020-06-02 12:57:28
阅读次数:
54