本教程操作环境:windows7系统、java10版,DELL G3电脑。
1、应用场景
(1)普通浏览器和网络服务(现在写的网络是帮你完成线程控制的中间部件),网络处理请求,各种专用服务器(比如游戏服务器)
(2)servlet多线程。
(3)FTP下载,多线程操作文件。
(4)数据库中使用的多线程。
(5)tomcat、tomcat内部采用多线程,数百个客户端访问同一WEB应用程序,tomcat访问后,将后续处理投入新的线程进行处理,该新的线程最后调用我们的servlet程序
(6)后台任务:例如,定期向大量(100W以上)用户发送邮件;定期更新配置文件和任务调度(如quartz),一些监控用于定期收集信息。
(7)自动操作处理:如定期备份日志,定期备份数据库等。
2、实例
等待超时模式。
开发人员经常用这种方法调用场景。调用一种方法时等待一段时间(一般是给定时间段),如果该方法能在给定时间段内得到结果,则立即返回结果,相反,超时返回默认结果。
一个简单的数据库连接池实例。
//java.sql.Connection是一个接口,最终的实现是由数据库驱动提供方来实现。 //我们通过动态代理构造一个Connection,仅仅用于示范。 publicclassConnectionDriver{ //动态代理的处理器类 staticclassConnectionHandlerimplementsInvocationHandler{ @Override publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{ Thread.sleep(100); returnnull; } } //创建一个Connection的代理,在commit时休眠100毫秒 publicstaticfinalConnectioncreateConnection(){ return(Connection)Proxy.newProxyInstance(ConnectionDriver.class.getClassLoader(), newClass<?>[]{Connection.class},newConnectionHandler()); } }原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容