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