首页 > 编程语言 > 详细

java多线程(四)

时间:2018-01-18 12:21:27      阅读:180      评论:0      收藏:0      [点我收藏+]

1.同步的前提

  多个线程

  多个线程使用的是同一个锁

2.同步的好处

  同步的出现解决了多线程的安全问题

3.同步的弊端

  当线程较多时, 因为每个线程都会去判断同步上的锁, 这样是很耗费资源的, 会降低程序的运行效率.

4.同步方法:

  1.就是将同步关键字, synchronized加到方法上, 此时的锁对象是this

  2.静态方法的锁对象是类的字节码文件对象, Xxx.class

5.jdk5之后的Lock锁

  Lock接口的两个方法

    lock(): 获取锁

    unlock(): 释放锁

  子类:ReentrantLock()

    通过调用子类的这两个方法, 获取锁, 释放锁, 将需要同步的代码块包进来, 同样可以解决线程安全问题.如下伪代码:

    ReentrantLock lock= new ReentrantLock();

    try{

      lock.lock();

      同步代码;

    }finally{

      lock.unlock();

    }

6.同步弊端

  a.效率低

  b.如果出现同步嵌套, 容易产生死锁

    死锁: 两个或两个以上线程, 在争夺资源的过程中, 出现相互等待的现象.

7.线程间通信

  不同种类的线程针对同一个资源的操作.(生产者, 消费者)

  生产者, 消费者, 等待唤醒机制:

  技术分享图片

 

java多线程(四)

原文:https://www.cnblogs.com/yadongliang/p/8309427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!