两种方式:
方式A:非线程池 (优点:代码简洁。缺点:频繁创建销毁时开销大占内存)
方式B:线程池(优点:无需频繁创建和销毁线程,内存复用率高。缺点:初始化预置创建的线程占用的内存将一直保留不能释放,需要配置相对合理的初始值和最大线程数、超时时长,需要结合业务和并发量提前合理估算)
A非线程池:3种方法创建
方法1:继承thread类(优点:? 缺点:不可再继承其它类,无反馈值不可抛出异常)
方法2:实现runnable接口(优点:可继承其它类。缺点:无反馈值不可抛出异常)
方法3:实现callable接口(优点:有反馈值且可出抛异常。缺点:?)
应用:推荐使用callable,可以获取反馈值,业务适用性更强,同时也能知道线程执行是否有异常,方便了解程序运行情况。
多线程监测:jdk/bin/jconsole.exe 运行后图形界面中线程选项卡可以看。
B线程池
待补充。。