程序员的自我修养——读书笔记

第一部分:温故而知新
第一章:介绍基本的背景知识——操作系统、线程、硬件

1、关于C语言中的hello world这些问题你都清楚吗?
这里写图片描述
2、计算机硬件设备的三个核心部件:
1》中央处理器CPU
2》内存
3》I/O控制芯片

3、
1》开发工具与应用层是属于同一个层次的,因为他们都使用同一个接口,那就是——应用程序编程接口(API——Application Programming Interface)
2》而应用程序接口的提供者是运行库。
3》运行库使用操作系统提供的系统调用接口。
4》系统调用接口在视线中往往以软件中断的方式提供

4、操作系统的功能:
1》提供抽象接口。
2》管理硬件资源

5、多道程序——》分时系统——》多任务系统(CPU采用抢占式分配方式)

6、线程:
1》线程,有时候被称为轻量级进程(LWP),是程序执行流得最小单元。
2》一个标准的线程由线程ID、当前指针指令(PC)、寄存器集合、堆栈组成
3》通常,一个进程由一个到多个线程组成,各线程之间共享程序的内存空间(包括代码段、数据段、堆等)以及一些进程级的资源(如打开文件和信号)

7、二元信号量:
1》二元信号量是一种最简单的锁。它只有两种状态:占用和非占用。
2》它适合只能被唯一一个线程独占访问的资源,当二元信号处于非占用状态时,第一个试图获取该二元信号量的线程会获取该锁,并将二元信号量置为占用状态,以后其他的所有试图获取该二元信号量的线程将会被等待,直到该锁被释放。

8、volatile关键字:
1》阻止编译器为了提高速度将一个变量缓存到寄存器内而不写回。
2》阻止编译器调整volatila变量的指令顺序
3》volatile虽然能够阻止编译器调整顺序,但是无法阻止CPU动态调度换序。

8+、单例模式:Singleton
1》单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。
2》通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约资源。
3》如果希望在系统中的某个类的对象只能存在一个,单例模式是最好的解决方案。

9、一个类只能创建一个对象

class Singleton
{
                 friend Singleton* CreateObj();
                 friend void ReleaseObj();
private:
                Singleton()
                {
                                cout << "Singleton()" << endl;
                }
                ~Singleton()
                {
                                cout << "~Singleton()" << endl;
                }
private:
                 int data;
                 static Singleton* pObj;
                 static std::mutex _mutex;
};
Singleton* Singleton::pObj = NULL;
std::mutex _mutex;

Singleton* CreateObj()
{
                 if (Singleton::pObj == NULL )
                {
                                _mutex.lock();
                                 if (Singleton::pObj == NULL )
                                {
                                                 //线程同步
                                                 //std::_Mutex mutex;//互斥量
                                                Singleton::pObj = new Singleton;
                                }
                                _mutex.unlock();
                }
                 return Singleton::pObj;
}
  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值