您的位置:首页 > 职场人生

黑马程序员_多线程中的Lock锁,死锁以及单例设计模式分析

2015-08-24 14:53 225 查看


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流------

1.Lock锁的概述

多线程问题之Lock锁

Lock锁包含lock()跟unlock()方法与synchronized()作比较

synchronized 一但用过该锁对象,就会自动释放锁然后让多线程抢占该锁对象,而lock需要加锁与释放锁配合使用

注意如果不释放锁对象,则一单获得锁就一直是同一个线程对象在运行程序

2. 死锁: 是多个线程在抢占CPU的资源的时候,出现了相互等待的状态就叫死锁

3. 线程池

4.
实现多线程的第3种方式

5. 多线程有几种实现方案,分别是哪几种?

答: 有两种 , 第一种定义一个类然后让这个类继承Thread类 , 第二种定义一个类然后让这个类实现Runnable接口

同步有几种方式,分别是什么?

答: 有2中,第一种是使用同步代码块, 第二种使用同步方法

启动一个线程是run()还是start()?它们的区别?

答: 启动一个线程使用的是start方法

run方法中封装的都是要被线程执行的代码,而start方法是启动线程

sleep()和wait()方法的区别

答: sleep方法是使线程进入休眠状态,可以指定休眠的时间

wait()是线程处于等待状态

sleep方法不释放同步锁

wait方法是释放同步锁

6.重点:单例设计模式:

思想: 保证这个类的对象在内存中只有一份

有两种:饿汉式跟懒汉式

(1) 单例设计模式之饿汉式:上来用静态先随着类的加载而加载创建一个对象

(2) 单例设计模式之懒汉式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: