多线程
文章平均质量分 53
Timor__
只想在平庸的生活中拥抱你
展开
-
多线程创建(一)
一、创建多线程 方法一:继承Thread类,重写run()方法,调用start()开启线程 子类继承具备多线程能力 启动线程:子类对象.start() 不推荐使用:避免OOP单继承局限性 方法二:实现Runnable接口,重写run()方法,把runnable接口实现类丢入执行线程Thread中,调用start()方法 子类继承具备多线程能力 启动线程:Thread(传入目标对象).start() 推荐使用:避免单继承局限性,灵活方便,方便同一个对象被同个对象使用 方法三:实现Callable接口,原创 2021-09-06 07:19:48 · 151 阅读 · 0 评论 -
多线程-线程状态(二)
一、线程状态 1、NEW 尚未启动的线程处于此状态 2、RUNNABLE 在java虚拟机汇总执行的线程处于此状态 3、BLOCKED 被阻塞等待监视器锁定的线程处于此状态 4、WAITING 正在等待另一个线程执行特定动作的线程处于此状态 5、TIMED_WAITING 正在等待另一个线程执行动作达到指定等待时间的线程处于此状态 6、TERMINATED 已退出的线程处于此状态 二、线程优先级 注意事项:优先级的设定建议在start()方法调度前 线程优先级用数字表示,范围1~10 Thread.MIN原创 2021-09-06 07:07:23 · 89 阅读 · 0 评论 -
多线程-同步和锁(三)
一、同步方法 synchronized方法(synchronized块)控制对 “对象” 的访问,每个对象都有一把锁,每个synchronized方法都必须调用该方法的对象的锁才能执行,否则线程会阻塞。(默认锁的是对象本身,也就是class) 注意事项:锁什么对象?答:锁的对象就是变化的量,需要增删改的对象 CopyOnWriteArrayList 是JUC包中一个并发的安全的集合 二,死锁 某一个同步代码块同时拥有 ” 两个以上对象的锁“ 时,就可能发生”死锁“的问题 产生死锁的必要条件: 1、互斥条件原创 2021-09-06 07:03:27 · 266 阅读 · 0 评论