深入理解Java线程编程

需积分: 9 0 下载量 199 浏览量 更新于2024-07-17 收藏 2.4MB PDF 举报
"SAMS Java Thread Programming - Paul Hyde - ISBN:0672315858" 在《SAMS Java Thread Programming》一书中,作者Paul Hyde深入浅出地介绍了如何利用Java线程来实现更高效、更快捷的程序设计。这本书面向的是有一定Java基础的专业开发者,特别是那些对多线程编程还不熟悉的读者。通过阅读这本书,读者能够显著提升自己的Java编程技能。 书中的第一章节仅用了五页半的篇幅,快速地概述了线程的基本概念,随后立即进入实战阶段,通过丰富的实例讲解了从创建线程开始,直至线程间通信、线程组、线程池、线程与Swing组件的结合等关键主题。作者还分享了如何优雅地退出线程以及在什么情况下应该使用“SureStop”类来强制停止线程的见解,这对于避免线程管理中的常见问题至关重要。 在“Part I Threads”部分,书中的第一章“Introduction to Threads”引出了线程的概念,让读者了解为何在Java中使用线程以及它们的基本工作原理。第二章“ASimpleTwo-ThreadExample”则通过一个简单的双线程示例,帮助读者直观地理解线程如何并发执行。第三章(未给出具体内容)可能继续深入讨论线程的创建、管理和同步等实际问题。 对于希望深入理解Java并将其运用得淋漓尽致的开发者来说,这本书是一个值得投入时间学习的宝贵资源。它不仅提供了技术上的指导,还包含了作者多年经验的结晶,使得读者能够在实践中避免常见错误,提高代码的性能和可维护性。 通过学习这本书,你将掌握如何有效地管理线程生命周期,避免死锁和竞态条件,以及如何优化多线程环境下的资源分配。此外,你还将了解到在特定情况下,单线程或多线程并不是最佳选择,从而能够根据实际需求做出明智的设计决策。《SAMS Java Thread Programming》是一本全面且实用的指南,对于想要提升Java多线程编程能力的开发者来说,它是不可或缺的参考书籍。

package db; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBCon { Connection con = null; Statement st = null; ResultSet rs = null; String driver=null; String url = null; String username = null; String password = null; public Connection dbCon() { try { InputStream is=DBCon.class.getClassLoader().getResourceAsStream("db.properties"); Properties prop=new Properties(); try { prop.load(is); driver=prop.getProperty("driver"); url=prop.getProperty("url"); username=prop.getProperty("username"); password=prop.getProperty("password"); } catch (IOException e1) { e1.printStackTrace(); } Class.forName(driver); Class.forName("com.mysql.jdbc.Driver"); url = "jdbc:mysql:///sams?useUnicode=true&characterEncoding=utf8"; username = "root"; password = ""; try { con = DriverManager.getConnection(url, username, password); } catch (SQLException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } return con; } /* * 增删改 */ public int query(String sql) { int rs = 0; con = dbCon(); try { st = con.createStatement(); rs = st.executeUpdate(sql); } catch (SQLException e) { close(); e.printStackTrace(); } return rs; } /* * 查 */ public ResultSet find(String sql) { try { con = dbCon(); st = con.createStatement(); rs = st.executeQuery(sql); } catch (SQLException e) { close(); e.printStackTrace(); } return rs; } /* * 关闭数据库 */ public void close() { try { if (rs != null) rs.close(); if (st != null) st.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } }有错误

2023-06-13 上传