Java中的程序計數器是一個指向正在執行指令的位置的計數器。它是線程私有的,同時也是線程上下文切換的主要參考指標。當線程被掛起并恢復執行時,程序計數器保存著當前線程執行的位置,以便于在下一次恢復執行時能夠繼續執行。
int count = 0; while (count< 10) { System.out.println(count); count++; }
在上面的代碼中,每次執行println語句時,程序計數器會記錄當前線程的執行位置,也就是count變量的值。當count的值達到10時,線程執行完畢并退出。
鎖是Java中重要的線程同步機制。通過使用鎖,可以確保同時只有一個線程能夠訪問被保護的資源。在Java中,鎖可以使用synchronized關鍵字實現。
class Counter { private int count = 0; public synchronized void increment() { count++; } public synchronized void decrement() { count--; } }
在上面的代碼中,Counter類的increment和decrement方法都是同步方法,它們使用了synchronized關鍵字來保證在同一時刻只有一個線程能夠訪問count變量。
需要注意的是,使用鎖會增加程序的開銷,如果不加控制地使用鎖,會導致性能問題。因此,在使用鎖時,需要權衡好同步和性能之間的關系。