摘要: notify导致的问题应该不叫死锁,死锁起码得有两把锁把,很多人举的例子都是一把锁的,而且代码好乱。 我举个例子说一下所谓的notify可能会导致的”死锁“: 》现在有10个人负责做蛋糕,而只有2个人负责吃蛋糕;其中4个做蛋糕的人由于之前装蛋糕的容器满了,一直在等待区里没被通知过,后来2个吃蛋糕的人 阅读全文
posted @ 2020-09-25 21:12 爱编程DE文兄 阅读(1566) 评论(0) 推荐(0) 编辑
摘要: Runnable接口有个缺点,它的run方法没有返回值并且不能抛异常,如果需要线程执行完返回一个结果以及希望能抛出异常,那么还有一个接口刚好能弥补这两个缺点:Callable,它跟Runnable都是任务接口,使用上基本相同 阅读全文
posted @ 2020-09-25 16:15 爱编程DE文兄 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 》若线程池没有关闭,则程序是不会关闭的 阅读全文
posted @ 2020-09-25 16:01 爱编程DE文兄 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-09-25 15:48 爱编程DE文兄 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-09-25 15:32 爱编程DE文兄 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-09-25 15:19 爱编程DE文兄 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 在java中创建线程的方式有两种: 1.继承Thread类;继承Thread的类就是一个线程类,需要重新run方法,run方法里的代码就是本线程要执行的代码 2.实现Runnable接口,并重新run方法,并将实现类作为参数交给一个Thread类区执行;实现Runnable接口的类相当是一个任务类, 阅读全文
posted @ 2020-09-25 15:14 爱编程DE文兄 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1. sleep()方法:是属于Thread类中的。 wait()方法:是属于Object类中的;两者都会造成线程的阻塞(让出cpu使用权) 2. sleep()方法是在指定的时间让当前线程暂停执行,让出cpu该其他线程,但是他的状态依然保持(就是执行到了哪行代码就在哪行停留着,等到超时或者调用in 阅读全文
posted @ 2020-09-25 15:05 爱编程DE文兄 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 话不多说,看以下两部分代码 public class ThreadTest { public static void main(String[] args) { //创建并开启线程 new MyThread().start(); //循环遍历 for(int i=0;i<100;i++) { Sys 阅读全文
posted @ 2020-09-25 14:11 爱编程DE文兄 阅读(215) 评论(0) 推荐(0) 编辑