多线程
honder试试
这个作者很懒,什么都没留下…
展开
-
多线程
callable 与 runnable 的区别Callable接口比Runnable接口要新一点,它是在 Java 5 的时候发行的。尽管Callable跟Runnable接口都是设计来代表一个任务(task), 这个任务可以被任意线程执行, 但两者间还是有一些明显的差异. 在我看来, 最主要的差异在于Callable可以在内部的call()方法返回执行的结果, 而Runnable则不行另...原创 2019-08-30 09:38:25 · 175 阅读 · 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 · 273 阅读 · 0 评论 -
notify()和 notifyAll()有什么区别
notify()和notifyAll()的区别?notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。notifyAll():唤醒所有处入等待状态的线程;并可以理解为把他们排进一个队列;只不过只有头部的线程获得了锁,才能运行;注意!!并不是给所有唤醒线程一个对象的锁,而...原创 2019-08-30 10:16:32 · 1724 阅读 · 0 评论 -
创建线程池有哪几种方式
通常开发者都是利用Executors提供的通用线程池创建方法,去创建不同配置的线程池,主要区别在于不同的Executors目前提供了5种不同的线程池创建配置:1、newCachedThreadPool(),它是用来处理大量短时间工作任务的线程池,具有几个鲜明特点:它会试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程;如果线程闲置时间超过60秒,则被终止并移除缓存;长时间闲置时,...原创 2019-08-30 10:24:23 · 14059 阅读 · 0 评论