该文被密码保护。 Read More
posted @ 2021-08-05 14:52 二杠一 Views(2) Comments(0) Diggs(0) Edit
转移线程所有权 感觉这一说法是书中为了保持语义正确才这么翻译,让人摸不着头脑。个人觉得“线程变量在不同的线程对象之间传递”这样更好理解一点。 其实就是std中的move语义。 转移线程所有权的意义 thread支持了move这一语义,就意味着可以将线程对象用于函数参数或返回值传递,从而更方便的管理线 Read More
posted @ 2020-01-07 11:11 二杠一 Views(305) Comments(0) Diggs(0) Edit
命令行变量 在make时,可通过“传参”的形式定义Makefile中的变量。 target : @echo "var => $(var)" make var:=xxx,此时:var => xxx override关键字 override关键字的作用就是防止Makefile中定义的变量被命令行变量改写 Read More
posted @ 2020-01-05 22:38 二杠一 Views(580) Comments(0) Diggs(0) Edit
局部变量 定义在依赖中,作用域只在指定的目标及其连带规则中。 var := xxx test : var := testxxx test : @echo "test:" @echo "var => $(var)" normal : @echo "var => $(var)" 模式变量 以通配符匹配并 Read More
posted @ 2020-01-05 22:28 二杠一 Views(749) Comments(0) Diggs(0) Edit
普通传参 线程会将参数拷贝后访问 引用传参:常量引用 线程会将参数拷贝后访问 引用传参:非常量引用 此时要用到std::ref()将参数转换成引用形式,线程访问的变量与参数变量为同一地址。 指针传参 此时,线程中的指针与参数指针指向同一地址。 Read More
posted @ 2019-09-29 14:38 二杠一 Views(773) Comments(0) Diggs(0) Edit
线程的执行时机 线程在其对象被创建后立即执行。 等待线程和分离线程 线程创建后通过调用thread对象的join()或detach()函数决定线程是等待还是分离; 不能对没有执行线程的thread对象使用join()或detach(); 使用join()或detach()之前应对thread对象进行 Read More
posted @ 2019-09-27 15:46 二杠一 Views(153) Comments(0) Diggs(0) Edit
以上代码中就包含两个线程:“主线程”、“t线程”。主线程入口函数为“main”而t线程入口函数为“hello”。t.join()保证了主线程会等待t线程及其相关线程。 Read More
posted @ 2019-09-27 11:08 二杠一 Views(215) Comments(0) Diggs(0) Edit
自动变量 $@:当前规则的目标 $^: 当前规则中的所有依赖 $<: 当前规则中的第一个依赖 特殊变量 $(MAKE):当前make解释器的文件名; $(MAKECMDGOALS):命令行中指定的目标名; $(MAKEFILE_LIST):make所需处理的makfile的文件列表; $(MAKE_ Read More
posted @ 2019-09-24 22:29 二杠一 Views(258) Comments(0) Diggs(0) Edit
Makefile中的变量的定义和使用 CC := gcc TARGET := hello.out $(TARGET) : func.o main.o $(CC) -o $(TARGET) func.o main.o Makefile中使用变量不一定非得定义,未定义的变量值为空。 变量的赋值方式 简单 Read More
posted @ 2019-09-23 22:40 二杠一 Views(186) Comments(0) Diggs(0) Edit
为什么需要伪目标? Makefile里的目标原型都是文件,Makefile以检测文件的更新时间作为执行命令的标准。但是,当只需要有一个“标签”以执行命令而不与文件关联时,就需要伪目标。 如:要在Makefile里执行“clean”命令以清除生成的文件。如果还是以“文件目标”的形式,当当前目录正好有一 Read More
posted @ 2019-09-23 22:02 二杠一 Views(172) Comments(0) Diggs(0) Edit