Java是一種廣泛使用的編程語言,在開發過程中,多線程和同步鎖的應用非常重要。下面我們來簡單實現一下多線程和同步鎖的代碼。
public class MyThread extends Thread { private String threadName; private Thread thread; public MyThread(String name) { threadName = name; System.out.println("Creating " + threadName); } public void run() { System.out.println("Running " + threadName); synchronized(this) { for(int i=0;i<5;i++) { System.out.println("Thread: " + threadName + ", " + (i+1)); } } System.out.println("Thread " + threadName + " exiting."); } public void start () { System.out.println("Starting " + threadName); if (thread == null) { thread = new Thread (this, threadName); thread.start (); } } }
這是一個簡單的多線程的實現,通過繼承Thread類并重寫run方法來實現線程體的代碼。
在這個代碼中,我們使用了synchronized關鍵字來實現同步鎖。synchronized關鍵字可以通過修飾代碼塊、方法和靜態方法來使用。在這個例子中,我們使用了修飾代碼塊的方法,將需要同步的代碼放在synchronized關鍵字的大括號內。
在代碼執行時,當一個線程進入synchronized塊內時,會獲得該對象的鎖,其他想要進入該塊的線程將被阻塞,直到該線程執行完畢并釋放鎖。這樣就可以避免多個線程同時修改同一塊資源,避免出現數據不一致或線程安全問題。
綜上所述,多線程和同步鎖在Java中是非常重要的應用,開發人員需要掌握它們的基本知識和使用方法,以確保編寫出安全、穩定的代碼。
下一篇java棧和堆的輸出