摘要: 死锁产生的原因(必须有两个线程、必须有多个锁、锁之间必须有引用的过程) T1一直等待T2释放this锁 T2又一直等待T1释放ob锁 阅读全文
posted @ 2018-11-25 15:26 知识追求者 阅读(137) 评论(0) 推荐(0)
摘要: 在静态方法上面加synchonizd用的是字节码文件锁 一般情况下,不使用static锁:JVM编译的时候,static是存到方法区,方法区是垃圾回收机制不会回收的 阅读全文
posted @ 2018-11-25 15:17 知识追求者 阅读(213) 评论(0) 推荐(0)
摘要: 在方法上面加synchonizd用的是this锁 阅读全文
posted @ 2018-11-25 14:57 知识追求者 阅读(126) 评论(0) 推荐(0)
摘要: synchonizd解决安全性问题 线程安全问题产生的条件:要有两个线程以上;必须要对同一变量进行操作;必须代码块使用同一把锁 原理:一个拿到锁,其它线程进行等待;释放过后,其它线程才能访问,就是锁的竞争问题,也是死锁产生的条件 阅读全文
posted @ 2018-11-25 14:38 知识追求者 阅读(140) 评论(0) 推荐(0)
摘要: 多线程安全问题(卖火车票案例) 阅读全文
posted @ 2018-11-25 14:21 知识追求者 阅读(173) 评论(0) 推荐(0)
摘要: 设置线程优先级:join() 阅读全文
posted @ 2018-11-25 14:01 知识追求者 阅读(125) 评论(0) 推荐(0)
摘要: 什么是守护线程 守护线程是为用户线程服务的这么一个线程,主线程结束,守护线程也结束 阅读全文
posted @ 2018-11-25 13:37 知识追求者 阅读(113) 评论(0) 推荐(0)
摘要: 多线程应用实例(批量发送短信) 1、创建实体类 package com.cppdy; public class UserEntity { private int id; private String name; public int getId() { return id; } public voi 阅读全文
posted @ 2018-11-25 00:17 知识追求者 阅读(176) 评论(0) 推荐(0)
摘要: 常用线程api方法 多线程运行状态 1、新建状态 用new创建一个线程 2、就绪状态 当调用线程的start()方法 3、运行状态 当线程获得cpu,开始执行run方法 4、阻塞状态 线程通过调用sleep方法进入睡眠状态 线程试图得到一个锁,而该锁正被其它线程持有 线程在等待某个触发条件 5、死亡 阅读全文
posted @ 2018-11-24 23:06 知识追求者 阅读(191) 评论(0) 推荐(0)
摘要: 通过匿名内部类的方法创建多线程 阅读全文
posted @ 2018-11-24 22:32 知识追求者 阅读(172) 评论(0) 推荐(0)