https://github.com/ideal
                                                
                                                提交了问题
                                              
                                                    2020-06-07
                                                https://github.com/catchorg/Catch2 写起来也很简单: define CATCH_CONFIG_MAIN include "catch.hpp" unsigned int factorial( unsigned int n ) { return n <= 1 ? n...
https://github.com/catchorg/Catch2 写起来也很简单: #define CATCH_CONFIG_MAIN #include "catch.hpp" unsigned int factorial( unsigned int n ) { return n <...
https://github.com/catchorg/Catch2 写起来也很简单: #define CATCH_CONFIG_MAIN #include "catch.hpp" unsigned int factorial( unsigned int n ) { return n ...
有些时候需要把命令行程序的日志在页面中展示,比如这种场景。通常日志里可能含有进度的展示,比如curl的输出,这种展示依赖于r这种控制字符来起作用。遗憾的是如果直接作为html来输出,r会被当作换行,导致进度变成了无数行,比如这里的样子(虽然可能也不是大问题)。
                                                
                                                提交了问题
                                              
                                                    2018-12-04
                                                
                                                
                                                提交了问题
                                              
                                                    2018-10-25
                                                
                                                
                                                提交了问题
                                              
                                                    2017-05-27
                                                有时难免需要恢复数据库到之前某个制定时间点(例如由于SQL误操作并且已经commit导致)。在阿里云控制台,RDS有两种恢复方法,一种是覆盖性恢复,可以为理解通过全量备份覆盖当前数据库,只能选取某个全量备份进行操作;一种是通过创建临时库,可以制定近7天内任意时间点。显然,选择后者相对能将影响降到最.
接上篇(https://yq.aliyun.com/articles/59034 ),我们知道了lock的意义。回到之前的多线程加法操作,当然也可以通过pthread提供的互斥锁来保证结果是正确的。那互斥锁本身是如何保证原子性的呢?当然首先获得锁的操作需要是一个指令,而不能用加载-比对-存储这种类.
接上篇(https://yq.aliyun.com/articles/59019),对一个变量进行加法操作,可以是3条指令,也可以是1条指令。区别在于,1条指令属于原子操作,不会被打断,那是不是只要1条指令的形式,多线程之间就不需要加锁了呢?我们先试试看。 #include
一直以为一个简单的i++操作,会变成三条会变指令: 1. 加载内存内容到寄存器 2. 对寄存器进行加法操作 3. 写回内存 然而事实上,add指令的操作对象,可以直接是内存的内容,这里有相关的说明:http://x86.renejeschke.de/html/file_module_x86_
多进程或者多线程的程序,涉及到对共享资源的修改,都需要使用到锁。最常见的情况(也一般是然并卵的情况)是对一个全局变量进行++操作,比如有个全局变量i,如果多个线程同时执行i++,教科书已经提到,是会出问题的。因为i++并不是一个原子操作,汇编之后会是三个操作: movl i(%rip
                                                
                                                提交了问题
                                              
                                                    2015-11-13
                                                
发表了文章
                                                2019-08-19
                                            
发表了文章
                                                2019-08-19
                                            
发表了文章
                                                2019-08-14
                                            
发表了文章
                                                2019-08-13
                                            
发表了文章
                                                2017-09-30
                                            
发表了文章
                                                2017-09-26
                                            
发表了文章
                                                2017-09-25
                                            
发表了文章
                                                2016-08-26
                                            
发表了文章
                                                2016-08-12
                                            
发表了文章
                                                2016-08-10
                                            
发表了文章
                                                2016-08-09
                                            
发表了文章
                                                2015-12-02
                                            
发表了文章
                                                2015-12-02
                                            
                                
提交了问题
                                                
                                                2020-06-07
                                            
回答了问题
                                                2019-11-05
                                            
回答了问题
                                                2019-03-04
                                            
提交了问题
                                                
                                                2018-12-04
                                            
提交了问题
                                                
                                                2018-10-25
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
提交了问题
                                                
                                                2017-05-27
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17
                                            
回答了问题
                                                2019-07-17