本文小结关于synchronized线程同步机制的学习。首先需要了解什么是同步和异步,继承Thread类与实现Runnable接口的区别。
(一)简单的理解一下同步和异步:
同步就是指一个线程要等待上一个线程执行完之后才开始执行当前的线程,
异步是指一个线程去执行,它的下一个线程不必等待它执行完就开始执行。
(二)继承Thread类与实现Runnable接口的区别:
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;他们都是在java.lang包中定义的。下边看一个简单的例子:
(三)线程的启动
一个线程大致可以分为 个状态:就绪(准备运行),运行,休眠(暂停),死亡。
线程的启动必须用start()方法启动,当一个线程对象调用start()方法时,就进入了就绪状态,等待系统的调度,不会阻塞程序,代码继续向下执行。不可以用run()方法来启动程序,当调用run()方法时,程序会把run()方法当做普通方法对待,直到执行完run()方法,程序才可以向下继续执行;相反,调用start()方法,JVM会自动调用线程中的run()方法。