---线程同步基础)
在Java高并发编程学习前我们需要这些基础知识线程的概念如何启动一个线程基本的线程同步下面线程同步synchronized对于线程同步的几种写法1、简单的对某个对象加锁下面用Object o做示例... public void m(){ synchronized(o){ //任何线程要执行下面的代码必须先拿到o的锁 count--; System.out.println(Thread.currentThread().getName() count count); } } ...2、第一种写法的简单版... public void m(){ synchronized(this){ //任何线程要执行下面的代码必须先拿到this的锁 count--; System.out.println(Thread.currentThread().getName() count count); } } ...3、在方法声明处加上synchronized... public synchronized void m(){ //等同于在方法的代码执行时要synchronized(this) count--; System.out.println(Thread.currentThread().getName() count count); } ...4、静态方法处理方式... public class T { private static int count 10; public synchronized static void m(){ count--; System.out.println(Thread.currentThread().getName() count count); } public static void mm(){ synchronized(T.class){ count--; } } } ...5、简单的多线程示例... public class T implements Runnable { private static int count 10; public synchronized static void run(){ count--; System.out.println(Thread.currentThread().getName() count count); } public static void main(String[] args){ T t new T(); for(int i0; i5 ; i){ new Thread(t,THREAD i).start(); } } } ...注意有人说synchronized方法锁定的是synchronized(){}中的花括号中的代码块其实这种说法是错误的其实锁定的是synchronized(){}中括号中的所指对象