多线程总结2

Lock锁,实现接口为ReentrantLock

方法有 lock()   unlock()

一般要加 ty....finally防止异常跳出

这三个是通过锁对象进行调用的,因为涉及到锁的释放

并且wait后线程等待,锁会立即释放,等下次从这里爬起来继续进行下一步操作

notify用来唤醒当前锁里面还在等待的线程.

可以保证生产者消费者模式不出错.

线程池

当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。

线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。

JDK5开始,Java内置支持线程池

JDK5新增了一个Executors工厂类来产生线程池

es1.submit(new Runnable());

es1.shutdown.//关闭线程池.

使用线程池每次用完后线程回收,下次可以直接使用,不需要启动线程.,提高了效率,

实现Callable接口,重写call方法,结果和run方法差不多,只不过call有返回值类型,并且需要抛异常.,不过Callable依赖线程池存在.

猜你喜欢

转载自blog.csdn.net/shui_jin_shan/article/details/84617477
今日推荐