二哥啊

导航

 

2019年11月25日

摘要: 1.实现Callable接口 相比run()方法,可以有返回值 方法可以抛异常 支持泛型的返回值 需要借助FutureTask类,比如获取返回结果 2.使用线程池 背景:经常创建和销毁、使用量特别大的资源 比如并发情况下的线程,对性能影响很大 思路:提前创建好多个线程,放入线程池中,使用时直接获取, 阅读全文
posted @ 2019-11-25 17:03 二哥啊 阅读(90) 评论(0) 推荐(0) 编辑
 
摘要: 涉及到三个方法 wait() :一旦执行此方法 当前线程就进入阻塞状态并释放同步监视器 notify():唤醒被wait的另一个线程。如果有多个线程被wait,就唤醒优先级高的线程 notify():唤醒所有被wait的线程 三个方法必须使用在同步代码块或同步方法中 调用者必须是同步代码块或同步方法 阅读全文
posted @ 2019-11-25 16:06 二哥啊 阅读(130) 评论(0) 推荐(0) 编辑
 
摘要: 死锁: 不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续 解决方法 专门的算法 原则 尽量减少同步资源的定义 尽量避免嵌套同步 解决线程安全问题的方式三:Lock锁 JD 阅读全文
posted @ 2019-11-25 14:41 二哥啊 阅读(103) 评论(0) 推荐(0) 编辑