学习JAVA快俩年了,这几天把线程方面的知识过了一遍,顺便记录下,以便日后查询。
JAVA里的多线程的实现方式有俩种,分别是继承Thread和实现Runable ,具体实现网上资料很多,这里也不错说。
以前在学习线程的时候没学好,没理解俩者的区别
方式二,在俩个线程实例内部维护的object是同一份,而方式一在俩个线程实例内部维护的object却是俩份不同的对象实例。
因此在线程同步时就需要注意,对象锁是否是共享的。
如果采用方式一来创建线程。那么他们使用对象锁来达到同步,需要通过使用类锁实现同步。
同步关键字synchronized
可以在方法前修饰。例如 synchronized void method() 等同于synchronized (this){}
该方式是对所有具有synchronized 修饰的方法进行同步,灵活性不高。
也可同步局部代码块 synchronized (object){} ,灵活性较高。