多线程
进程和线程
进程:正在运行的程序。也就是程序所占用的内存空间。
线程:线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程可以开启多个线程。
进程与线程的关系:一个操作系统中可以有多个进程,一个进程中可以有多个线程,每个进程有自己独立的内存,每个线程共享一个进程中的内存,每个线程又有自己独立的内存。(重要)
设计模式
单例模式(懒汉式单例)
- 延迟加载 和 线程安全
1 /单例设计模式 懒汉式 2 //面试重点: 延迟加载 + 线程安全 3 public class Test4_MySingle2 { 4 public static void main(String[] args) { 5 MySingleton s1 = MySingleton.getSingleton(); 6 MySingleton s2 = MySingleton.getSingleton(); 7 System.out.println(s1 == s2); 8 } 9 } 10 11 // 创建类,保证全局只有唯一实例 12 class MySingleton { 13 // 1、私有化构造方法 14 private MySingleton() { 15 } 16 // 2、在类的内部创建对象 -- 延迟加载!!! 17 static private MySingleton single; // 初始化不创建对象,需要时才创建 18 // 3、提供公共的访问方法 19 //synchronized修饰,是因为共享资源single被多条语句(3条)操作,就会存在线程安全隐患,所以变成同步的,牺牲效率提高安全 20 synchronized static public MySingleton getSingleton() { 21 // synchronized (this) { 22 if (single == null) { 23 single = new MySingleton(); 24 } 25 return single; 26 // } 27 } 28 }