自己看3

来源:互联网 发布:windows键在哪里 编辑:程序博客网 时间:2024/05/14 15:31

1.double-check的代码

******膜拜大神https://liam0205.me/2017/01/17/fork-safe/*************

if(NULL==ptr){   //确保在ptr是NULL的时候采取获取锁并舱室构造对象

    pthread_mutex_lock(&locker);

    if(NULL==ptr){  //避免重复操作和内存泄漏,因为ptr在执行完pthread_mutex_lock(&loker)之后别的线程

ptr=new type;   //已经为ptr构造了对象

     }

  }

  return ptr;

除了上面的问题之外还有问题:CPU动态调度的问题

ptr=new type; 3个内容:1.按type类型分配内存;2.执行type的构造函数;3.把内存起始地址赋给ptr

2和3在CPU中的执行顺序可能是随机的。有可能先执行了3但还没执行2的时候当前线程被中断,其他线程执行到这段代码时候,就会直接返回ptr(未初始化内存),如果后面对ptr进行访问就可能崩溃。只能根据具体CPU架构调整代码

把ptr=new type;改成:type *temp=new type;     barrier();//保证ptr赋值前,内存已被初始化   ptr=temp;

2.当子线程持有锁的时候,由主线程进行fork()操作是不安全的。多线程环境下执行fork()函数不安全,慎重使用多进程和多线程混搭的模型。

3.并发concurrency

并-时间上同时  发-事件的发生   并发-两个或多个事件同时发生,一个主体    并行-同时发生,多个事件对应多个主体

4.进程的数据交流

一般进程间进行数据传递,共享必须依赖操作系统信号,套接字,文件,管道等

5.提高程序性能

将一个任务,在算法或数据上拆分成若干部分,并发执行(较短时间内完成了同样的任务)

不拆分任务,并发执行多份任务(同样的时间内完成了更多的任务)

6.线程的开销

系统启动线程会有固定的开销

CPU在线程间做上下文切换会占用CPU执行时间

7.c++11多线程

#include<thread>

$g++ --std=c++11 -pthread main.cpp -o main

8.进制转换

位制:B-binary-二进制,O-octal-八进制,D-decimal-十进制,H-hexadecimal-十六进制

(11010111.0100111)B=(?)O

          11    010   111.    ->327.

     .010   011   1  ->234      补够三位

八进制和二进制是-3位          十六进制和二进制是-4位

(ABC.8C)=C*16^0+B*16^1+A*16^2      +     8*16^(-1)+C*16^(-2)

              =2560+176+12+0.5+0.046875

              =(2748.546875)D

9.IC-Integrated circuit design

Fabless-无晶圆厂

Foundry-芯片代工厂

Synopsys-新思科技

netlist-门级网表,把HDL代码转化成成netlist叫综合,综合时需要设置约束条件,比如面积,时序等

STA-static timing analysis-静态时序分析

setup time-建立时间,hold time-保持时间,violation-违例

DFT-design for test-可测性设计,目的在设计时就考虑将来的测试

布局规划-放置芯片的宏单元模块,电路的摆放位置,如IP模块,RAM,I/O引脚等

CTS-clock tree-synthesis-时钟树综合,时钟的布线,应该是对称式连到各个寄存器单元,时钟信号需要单独布线

布线-普通的信号布线,包括各种标准单元(基本逻辑门电路)之间的走线,90nm工艺,指的是金属布线的最小宽度,微观就是mos管的沟道长度

LVS-layout VS schematic-版图与逻辑综合后的门级电路图对比验证

DRC-design rule checking-设计规则检查,连线间距,连线宽度是否满足工艺要求

ERC-electrical rule checking-电气规则检查,短路,开路等违例

门延迟-构成门的晶体管在有限的时间内完成转换(当门的输入变化时,输出在有限的时间里完成改变),这个转换所用的时间就是门延时。

            也成为传播延时(propagation delay),通常晶体管的尺寸越小,转换越快。

(http://blog.csdn.net/iamsarah/article/details/76174380)

两个参数:t_phl输入改变时输出由高到低    t_plh输入改变时输出由低到高   在改变50%处进行测量

D触发器延迟-1.C2Q时钟C改变时,Q改变所需要的延时,属于传播时延。2.setup时间,时钟上升沿之前,输入D稳定所需要的时间。3.hold时间,时                       钟上升沿来临之后,输入D要保持稳定的时间

触发器具有记忆功能,具有两个稳定状态(0,1)的信息存储器件,在一定外界信号作用下,可以从一个稳定状态翻转到另一个状态。

DFF-data flip-flop或delay flip-flop。

cp-clock pulse-时钟脉冲




                      







 






原创粉丝点击