Java實現多線程方式有如下兩種:java
public class HelloWordThread implements Runnable{ public void run(){ System.out.println("HelloWordThread.run()"); System.out.println("threadName:"+Thread.currentThread().getName()); System.out.println("threadState:"+Thread.currentThread().getState()); } } public class CounterThread extends Thread { @Override public void run(){ System.out.println("threadName:"+Thread.currentThread().getName()); System.out.println("threadState:"+Thread.currentThread().getState()); } }
線程併發保證數據一致性的關鍵字:synchronized多線程
能夠加在對象的方法上:併發
public class Counter { private int counter=0; public synchronized void incr() { this.counter++; } public synchronized int get() { return this.counter; } }
或者ide
public class Counter { private int counter=0; public void incr() { synchronized(this){ this.counter++; } } public int get() { synchronized(this){ return this.counter; } } }
切記 synchronized同步的對象是當前對象。this
保證同步的同時,就會有資源消耗,java提供了一個輕量級的關鍵字:volatile線程
PS:其餘對線程對象的實現方法:start、sleep、join等與C#基本一致。對象
關於interrupt方法:blog
一、此方法不會中斷線程,只是一個協調機制。設置一個線程中斷標誌位。具體何時中斷,線程會參考這個標誌位。資源
因此當不知道線程在作什麼事時,不能貿然調用此方法。get