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