线程学习笔记-饿汉、饱汉模式


1.线程的分类:守护线程,用户线程
  守护线程和用户线程各个方面都是一样的,唯一区别就是守护线程是为用户线程服务的,比如GC(垃圾回收器)就是守护线程,专门清除托管代码。守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。大白话解释就是,这个程序运行不依赖控制终端。比如控制台程序,控制台关闭了,整个程序就被终止。这个程序的进程就不是守护进程了。

  ps:在redis启动中,经常更改配置文件中的daemon为yes,就是配置在linux运行为守护进程。

2.线程知识点:

  1.线程的生命周期:创建》准备》执行》死亡,中间可能有阻塞(sleep/wait)

  2. Thread.yield() 就是让当前线程从执行状态变为准备。

  3. 线程如果被阻塞了,当被唤醒的时候只能是准备状态,什么时候执行是由cpu决定.

 

3. 线程同步方式:lock方式, synchronization 方式(Java)

单例模式下的lock方式有两种方式:饿汉模式,饱汉模式
1.饿汉模式:就是第一次进来对象是空的
lock(this){
if(instance==null){
  return instance=new object;
  }
}


2. 饱汉模式就是instance 在初始化的时候就赋值了,不是第一次来才给值.

class Demo{

  private object instance=new object();  //初始化的时候就赋值了。这是饱汉模式

  lock(this){

    if(instance==null)  return instance=new object();

  }

 

4.线程的通信(java):wait,notify
  wait:把当前线程变为阻塞状态,notify:通知那些等待状态的线程执行.

posted @ 2017-07-26 16:44  小坡子~  阅读(671)  评论(0编辑  收藏  举报