线程死锁问题,即在多个线程之间,当线程都需要先获取资源再释放资源时,就会发生死锁问题
为了避免线程发生死锁,应尽量控制线程在获取资源对象时,即对资源上锁后,不在调用其他对象
注:线程死锁问题不能解决,只能避免出现
二、线程生命周期与线程池
每一个线程在被创建时即赋有生命,在此线程结束使用后,生命消失。在程序中,创建一个新的线程是一个非常消耗性能的 *** 作,而每一个线程的任务可能很短就结束生命周期。为了让线程循环使用,避免浪费性能,因此创立线程池
线程池:将创立的线程放入其中,然后使得线程可以循环使用
Executor接口:线程池的顶级接口,是一个执行线程的工具
ExecutorService:线程池的接口
Executors类:Executor接口的实现类
内部方法:
newSingleThreadExecutor:创建一个单线程的线程池,然后使得这一个线程循环使用
newFilxedThreadPool:创建一个固定大小的线程池
特点:线程池一旦达到最大值,内部的线程就会保持不变
如果一个线程因异常而结束,那么线程池会补充一个新的线程
newCatchThreadPool:创建一个缓存线程池,如果次线程池内部空间不够,那么会选择结束掉长时间没用的线程
newScheduledThreadPool:创建一个无限的线程池
三、TCP原理
TCP是一个可靠的 协议,面向连接协议
ServerSocket:此类实现服务器套接字
Socket:此类实现用户端套接字
Socket是网络编程提供给程序编程的一种机制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)