
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
信号量就是一个带计数的锁,用来控制最多同时有多少个线程能进入某段代码(共享资源)。互斥锁(mutex):只能 1 个线程进,同一时刻只允许一个线程进入临界区,这样的信号量就叫做互斥锁,也叫做也叫做二元信号量;信号量(semaphore):可以设置 N 个线程 同时进入临界区;申请信号量的本质:申请一份 “许可”,让线程可以继续往下执行;没有许可就阻塞等待。“资源是否准备成功 == 申请信号量是否成

互斥量就是一把保护共享资源的锁,同一时间只允许一个线程持有它,就是访问当前的临界区代码,用来解决多线程同时读写同一块数据导致的混乱、错误问题。线程共享进程的内存空间,所以全局、静态、堆、成员变量都是共享数据;只有局部变量是线程私有。这就是为什么必须用互斥锁—— 防止多个线程同时改同一块内存导致结果错乱。我们去在超市中买东西,超市的东西是供应商,每次超市都会买很多的东西给我们卖,我们直接去超时买东西

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。约束就是数据库的"保安",防止坏数据进入,保证你的数据整齐、准确、靠谱!让我们未来插入的数据一定是符合规定的;约束本质是通过技术手段倒逼我们的程序员插入符合数据约束的数据;主键:primary key用来唯一的约束该字段里面的数据

②使用finish,是让在函数内跑,函数结束代码直接出结果,而我们的先打断点在用r,结果就是代码会直接跑到断点处停下来,如果我们的断点打在main函数中函数声明处,我们使用s,让直接进入对应的函数内部逐语句执行,这样就可以让我们看到在对应函数内跑完一次的结果了;⑦set var +次数,可以在程序运行期间把对应的某个值直接改掉,然后做对应的调试,其实也就是说,有的循环条件是<=100,但你想让它跑

(1)大小端决定了多字节数据(如整数)在内存中的存储顺序。你可以把内存地址想象成从左(低地址)到右(高地址)的格子。小端模式像“倒着放”:数据的低位字节(如个位)存在左边的低地址,高位字节存在右边。大端模式则像“正着放”:数据的高位字节(如百位)存在左边,更符合我们书写数字的习惯。(2) 使用联合体int main()unionint i;} test;// 设置一个int值{ // 检查低地址处








