logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

从零开始的C++生活——第三讲

那么*char2呢?你可能觉得,*char2得到常量字符串所以存放在代码段也就是常量区,事实上这么说是不合适的,因为char2是数组名,也就是首元素地址,也可以理解成代表这个数组,换句话讲,常量字符串当然是存放在代码段里,但是你利用char2对其进行了一个约束,操作系统会从代码段把常量字符串拷贝到栈区受你数组名的约束,一个显而易见的证据就是,你可以对char2里的元素进行修改。这是不是相同的异常?

#c++#生活#开发语言
双向链表的模拟实现

双向循环带头链表的模拟实现。

#数据结构
从零开始的多线程生活——02

但是,当一个线程执行每一步间隙的时候,都会触发cpu的随机调度,调度到另一个线程去执行同样的三步,我就举一种情况,假设t1你完成了第一步第二步,然后cpu调度到t2,t2去完成这三步,当t2把内存count加载到寄存器时,这是还没有加过的数据,显然t1已经完成自增了,所以这并不合理,而当这三步执行完t1再去把寄存器的值写入内存时写入的只是自增一次的结果,很显然这是错误的。这里t线程的逻辑我也就是进

#生活
从零开始的多线程生活

这是因为操作系统中,线程调度是随机的,也就是抢占式执行,多线程之间如何调度,按照什么顺序执行,这完全取决于操作系统,和程序员没什么关系,你即使是想修改也改不了,不过如果你为线程设置优先级,理论上倒是可以指定他们的调度顺序,但是操作系统也就是参考一下,并不一定会严格执行。我就拿一张桌子四个人的例子来说,其实上边是一种理想化的方式,有没有可能,有两个人都想吃同一只鸡,形成了一个竞争关系,产生了线程之间

#生活#java#开发语言
到底了