多线程
文章平均质量分 53
CabbageDevil
这个作者很懒,什么都没留下…
展开
-
多线程的学习 (四) 如何检查java程序时候产生死锁
1. 可以通过jdk命令工具(1.5以后都有)jps查看首先通过jsp查看出程序的PID,然后通过 jstack pid 的方式查看如图,如果有死锁则会有以下信息。2.通过jconsole进入视图管控台(适合不喜欢你看命令的朋友)下一步这里要介绍以下,除了看死锁之外,这个命令进来的管控台还可以看堆栈内存的消耗比较友好,还有点中文内容,看到全英文不...原创 2019-05-29 00:15:08 · 184 阅读 · 0 评论 -
多线程的学习 (三) 制造死锁
话不多说,直接上代码。线程0暂停了50毫秒,是为了感知到死锁,如果你的电脑不卡~不加入这段代码的话无法产生死锁哦。/** * @ClassName DeadLockDemo * @Description TODO 死锁Demo * @Author CabbageDevil * @Date 2019/5/28 23:24 * @Version 1.0 **/public class ...原创 2019-05-29 00:27:06 · 256 阅读 · 0 评论 -
多线程的学习 (五) 模拟线程不安全实例
话不多,我们还是直接线上代码,跑完之后你会发现得到的值可能等于0或者100或者200之类的(ps:都是等于0的电脑性能比较好哦,得出大于300的说明电脑可以换了)/** * @ClassName UnSafeThread * @Description TODO 模拟线程不安全实例 * @Author CabbageDevil * @Date 2019/5/29 0:30 * @Vers...原创 2019-05-29 01:20:38 · 473 阅读 · 0 评论 -
多线程的学习 (一) 进程与线程的区别
进程:是系统进行分配和管理资源的基本单位。线程:进程的一个执行单元,是进程内调度的实体、是CPU调度和分派的基本单位,是比进程更小的独立运 行的基本单位。线程也被称为轻量级进程,线程是程序执行的小单位。言而总之: 一个程序至少一个进程,一个进程至少一个线程。ps:进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈 段和数据段,这种操作非常昂贵。......原创 2019-05-30 00:45:41 · 112 阅读 · 0 评论 -
多线程的学习 (二) 线程的状态及其相互转换
1 .线程有多少种状态呢?我们通过查询Thread的源码可以看到State是一个enum(枚举)里面分别有6种状态。初始(NEW): 新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE): 处于可运行状态的线程正在JVM中执行,但它可能正在等待来自操作系统的其他资源 ,例如处理器。阻塞(BLOCKED): 线程阻塞于synchronized锁,等待获取synch...原创 2019-05-30 01:20:58 · 179 阅读 · 0 评论 -
多线程的学习 (六) 实现线程锁(ThreadLock)
1 锁1.1什么是锁所谓的锁,肯定是不想别人去拿到的东西才会上锁。那什么是锁呢?我们可以稍微定义一下:确保同一时间同一对象操作同一资源的方法。1.1 都有哪些锁?既然我们稍微的定义了一下锁,那我们平时在编程中的时候又有哪些锁呢。部分举例一下,如有不全可以补充:自旋锁: 线程状态及上下文切换消耗系统资源,当访问共享资源的时间短,频繁上下文切换不值得。jvm实 现,使线程在没获得锁的时候,...原创 2019-07-09 17:57:41 · 1063 阅读 · 0 评论