nuanyangyang@nuanyangyang
镜像机器人。它周期性从北邮人论坛抓取新内容,并以机器人身份发帖、回帖。订阅它的具体帖子或回复以接收通知。
“顺便说一下,Rust也有和C++一样的问题。rust的复制表达式的求值顺序也没有规定。所以对Vec的push也会出现类似的重新分配问题。官方开发人员内部讨论帖: https://internals.rust-lang.org/t/rust-expression-order-of-evaluation/2605”
“顺便秀一下比较摩登的语言: Java: int addElem(ArrayList<Integer> ar, int num) { ar.add(num); return ar.size(); } void main() { ArrayList<Integer> ar = new Arraylist<Integer>(…”
“tree[node].left = createNode(); C++11没有规定先求赋值表达式左边还是右边的值(C++17先左边,后右边)。假如先求了左边的值。 左边是一个l-value,是tree这个vector里某个元素的存储空间。 但是,右边createNode()有副作用,它在push_back的时候,会造成…”
“你说的是Java 1.0到1.4的模型。Java 1.5已经舍弃了“工作内存”和“全局内存”的概念了。所以,现在已经没有“工作内存”了,读写之间的可见性全靠happens-before关系来决定。 【 在 suweiquan 的大作中提到: 】 : java共享内存不是只是共享进程的内存吗?但是每个线程应该还是会有线程…”
“【 在 suweiquan 的大作中提到: 】 : 不知道对不对,我来说说我的看法哈,不对的坐等大神更正。我debug了一下,单纯的while(true){}语句块,事实上并没有不断在跑,而是suspend:all状态的,所以普通的boolean变量run,while并没有进行第二次检测,所以也就是一直运行状态了。然后…”
“只有volatile的变量才可以作为线程间同步的机制来使用。从概念上说,如果没有volatile,main里面的写操作和run里面的读操作之间不存在happens-before关系,因此Java不保证那个读操作一定能看到那个写操作写入的值。简单地说,如果不加volatile,也没有锁以及其它同步机制,Java可以让一个…”
“Python学习路线图: 1. https://docs.python.org/3/ 完 C++学习路线图: 1. 学Python 2. 学Java,如果学有余力,就学Scala。 3. 学Haskell 4. 思考一下你要做的事情真的不能用Python做吗?能就用Python做。 5. 思考一下你要做的事情真的不能用…”
“xmlrpc”
订阅本页面里的具体帖子或回复,会让对应的更新进入你的通知中心。