Java核心内库-线程-线程同步-同步方法
2016-11-30 15:05
232 查看
同步方法:
使用
同步锁是谁:
对于
对于
synchronized的优劣
好处:保证了多线程并发访问时的同步操作,避免线程安全性问题。
缺点:使用synchronized的方法/代码块 的性能比不使用要低一些。
使用
synchronized修饰的方法,就叫做同步方法。保证A线程执行该方法的时候,其他线程只能在方法外等着。
synchronized public void doWork(){}
同步锁是谁:
对于
非static方法,同步锁就是
this;
对于
static方法,我们使用当前方法所在类的字节码对象(Apple2.class)
class Apple2 implements Runnable{ private int num = 50; //苹果总数 @Override public void run() { for (int i=0;i<50;i++){ eat(); } } synchronized private void eat(){ if (num>0){ System.out.println(Thread.currentThread().getName()+"吃了编号为"+num+"的苹果"); try { Thread.sleep(10); // 此时是为了模拟网络延迟 } catch (InterruptedException e) { e.printStackTrace(); } num--; } } } public class Main { public static void main(String[] args){ // 创建三个线程(同学)吃苹果 Apple2 a = new Apple2(); new Thread(a,"小A").start(); new Thread(a,"小B").start(); new Thread(a,"小C").start(); } }
synchronized的优劣
好处:保证了多线程并发访问时的同步操作,避免线程安全性问题。
缺点:使用synchronized的方法/代码块 的性能比不使用要低一些。
相关文章推荐
- Java核心内库-线程-线程同步-同步锁(Lock)
- Java核心内库-线程-线程通信-wait和notify方法介绍
- Java核心内库-线程-线程同步-同步代码块
- java线程学习5——线程同步之同步方法
- java线程学习5——线程同步之同步方法
- Java线程:线程的同步-同步方法
- Java中有几种方法实现一个线程,用什么关键字修饰同步方法?stop()和suspend()方法为何不提倡使用?
- Java线程:线程的同步-同步方法
- 下面属于java线程同步方法的方法有
- Java线程:线程的同步-同步方法
- Java基础之线程——管理线程同步方法(BankOperation2)
- Java中线程的同步方法(线程必须是同一个同步方法)
- Java:多线程,线程同步,synchronized关键字的用法(同步代码块、非静态同步方法、静态同步方法)
- Java线程:线程的同步-同步方法
- java线程同步的各种方法
- Java多线程-线程的同步(同步方法)
- Java集合HashSet-ArrayList-HashMap的线程同步控制方法和区别
- java基础问题---java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- java基础之线程的同步(同步块和同步方法的使用)
- Java线程:线程的同步-同步方法