
多线程
honder试试
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程
callable 与 runnable 的区别 Callable接口比Runnable接口要新一点,它是在 Java 5 的时候发行的。尽管Callable跟Runnable接口都是设计来代表一个任务(task), 这个任务可以被任意线程执行, 但两者间还是有一些明显的差异. 在我看来, 最主要的差异在于Callable可以在内部的call()方法返回执行的结果, 而Runnable则不行 另...原创 2019-08-30 09:38:25 · 198 阅读 · 0 评论 -
sleep() 和 wait() 有什么区别?
1、这两个方法来自不同的类分别是Thread和Object,sleep方法属于Thread类中的静态方法,wait属于Object的成员方法。 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)。 sleep方法属...原创 2019-08-30 10:14:51 · 293 阅读 · 0 评论 -
notify()和 notifyAll()有什么区别
notify()和notifyAll()的区别? notify(): 唤醒一个处于等待状态的线程, 注意的是在调用此方法的时候, 并不能确切的唤醒某一个等待状态的线程, 而是由JVM确定唤醒哪个线程,而且不是按优先级。 notifyAll(): 唤醒所有处入等待状态的线程; 并可以理解为把他们排进一个队列; 只不过只有头部的线程获得了锁,才能运行; 注意!!并不是给所有唤醒线程一个对象的锁,而...原创 2019-08-30 10:16:32 · 1758 阅读 · 0 评论 -
创建线程池有哪几种方式
通常开发者都是利用Executors提供的通用线程池创建方法,去创建不同配置的线程池,主要区别在于不同的 Executors目前提供了5种不同的线程池创建配置: 1、newCachedThreadPool(),它是用来处理大量短时间工作任务的线程池,具有几个鲜明特点:它会试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程;如果线程闲置时间超过60秒,则被终止并移除缓存;长时间闲置时,...原创 2019-08-30 10:24:23 · 14469 阅读 · 0 评论