在實際項目開發過程中,線程是經常要用到的,特別是為了不影響項目的運行效果。
以下就以實際項目中的簡單例子來介紹:
public class SystemRedisInfoController extends implements Runnable { @RequestMapping(value = "/flushRedis") public void deleteAll(HttpServletRequest request, HttpServletResponse response) throws ManagerException{ //清空左側樹配置、通知緩存 SystemRedisInfoController imp = new SystemRedisInfoController(); Thread thread = new Thread(imp); thread.start(); } @Override public void run() { //逐一刪除對應的左側樹緩存和通知通告 List<User> userList = userManager.findAll(); try { Jedis jedis = new Jedis(); for (User user : userList) { String userId = user.getId(); String zcsKey = Finals.JEDIS_ZCS.concat(userId); String tzKey = Finals.JEDIS_TZ.concat(userId); jedis.del(zcsKey.getBytes()); jedis.del(tzKey.getBytes()); } } catch (Exception e) { System.out.println("緩存未連接!"); } } }
在運行的方法中創建線程,需要該類實現(implement)Runnable接口,然后紅色字體部門就是創建線程,通過start方法啟動線程,執行run方法。
run方法是實現接口之后需要寫的方法,在這里進行線程中的部分。
值得注意的是:如果需要傳參,可以聲明一個全局變量,然后執行方法的時候給全局變量賦值,該全局變量聲明為static,在run方法中就可以接收到參數的值了。
如果以上能夠解決就不用考慮線程加鎖的問題。如果在執行run方法時一些方法報錯了,那么就需要用到鎖的概念了,詳情見下一篇。
