摘要:
今天在linux下编译一个cpp文件时,报出了一个奇怪的错误:arning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] 改了好一会也不知道哪出问题了,一度怀疑人生.... 原来,当g++编译版本比较 阅读全文
摘要:
ifconfig 查看ip地址 cat cat主要有三大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件:cat file1 file2 > file -b对非空输出行号 - 阅读全文
摘要:
查看线程id函数: std::this_thread::get_id() 强制取引用: std::ref(); 如果不用ref()对对象强制取引用的话,在运行的时候,即使在函数声明时已经说明了使用引用接收,编译器还是会重新拷贝一个widget_data的对象。 阅读全文
摘要:
使用detach()函数,让主线程和子线程分开运行,即使主线程运行完了,也就是这个进程已经结束了,而子线程还在继续运行,它将会交由操作系统托管,这将会导致很多的问题。 如果使用detach(): 1.如果线程传参数传递int这种简单的类型,不要传递引用,亲测编译器会报错。 2.如果传递的是一个类对象 阅读全文
摘要:
我们知道,线程的创建方式有三种:通过函数入口创建,通过类对象创建,通过lambda表达式创建。 在创建线程的同时,可以同时传递多个参数,传参方式有以下几种: 1.传入函数参数 可以看到,使用join()函数,让主线程等待子线程执行完毕,主线程再输出。join的好处是使程序受我们自己控制。输出是: 2 阅读全文
摘要:
C++中的thread对象通常来说表达了执行的线程(thread of execution),这是一个OS或者平台的概念。 当thread::join()函数被调用后,调用它的线程会被block,直到线程的执行被完成。基本上,这是一种可以用来知道一个线程已结束的机制。当thread::join()返 阅读全文
摘要:
C++11语言本身支持了多线程。在以往,linux和windows下创建线程的方式是不一样的,这也就降低了程序的可移植性和可读性。 以前对多前程的了解不多,最近在看一些C++11的新特性,看到多线程这里,故做以记录。 创建线程的两种方式: 1.线程的入口必须是一个函数,那么就可以用函数的方式: 1) 阅读全文
摘要:
一.为何需要多进程(或者多线程),为何需要并发? 这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。 我想,只要你不是整天都写那种int main()到底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有尝过并发编程的甜头。就像 阅读全文
摘要:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 这里需要注意的是,必须创建一 阅读全文
摘要:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 阅读全文