随笔分类 -  多线程

碧玉妆成一树高,万条垂下绿丝绦
摘要:转载请注明: https://blog.csdn.net/Stephen___Qin/article/details/115583694 使用判断nullptr (这一种不能保证线程安全,说有双重锁定检测问题,待进一步学习) #include <thread> #include <iostream> 阅读全文
posted @ 2021-04-10 21:31 心媛意码 阅读(468) 评论(0) 推荐(1) 编辑
摘要:可以 我们程序中所显示的内存地址实际上是虚拟地址. 不同进程访问相同地址的一个典型例子就是共享内存. 共享内存在不同进程中映射的地址一样吗? 不一样.同一块物理内存被映射到进程A、B各自的进程地址空间.但是可以通过OS的帮助得到他们在不同进程的虚地址. 另外的言论: 理论上,用户在任何当前流行的操作 阅读全文
posted @ 2020-09-22 14:15 心媛意码 阅读(1144) 评论(0) 推荐(0) 编辑
摘要:1.线程 线程切换涉及到用户态和内核态的切换?? 线程是OS底层的API,在创建线程与上下文切换过程中,会消耗较多的时间. 生活中常见的IO主要是网络和磁盘上面的, 2.协程 协程是编程语言级别的"线程",它的底层并不是线程,他不会告诉操作系统自己开辟了线程,所以它一直处于用户态,避免了用户态和内核 阅读全文
posted @ 2020-06-06 14:41 心媛意码 阅读(2287) 评论(0) 推荐(0) 编辑
摘要:今天跑步的时候,想起前一阵被问到的死锁问题还没有好好的看过,刚好简书上有一篇比较细致的文章,这里做下总结. 文章链接: https://www.jianshu.com/p/cab2fbc4b794 总结: 1.这里死锁产生的原因,线程t1等待t2释放mtB,而线程t2等待t1释放mtA. 2.死锁解 阅读全文
posted @ 2020-06-02 23:45 心媛意码 阅读(258) 评论(0) 推荐(0) 编辑
摘要:任意时刻锁的状态只有两种,开锁和闭锁.当任务持有这把锁时,此时这把锁是闭锁状态,称该任务获得了锁的所有权;当任务释放这把锁时,此时这把锁时开锁状态,称该任务失去了锁的所有权. 阅读全文
posted @ 2020-06-02 23:03 心媛意码 阅读(189) 评论(0) 推荐(0) 编辑
摘要:最近面试看到了线程安全的字眼,感觉有些困惑.自己之前认知中,多线程需要考虑同步来保证安全,怎么还有直接线程安全的方法或者类型呢(比如Java中线程安全的类)? 什么是线程安全? 线程安全指的是,在多线程调用时即使不对调用的方法进行同步处理,也能够让线程输出预想的结果,而不会出现脏数据. 为何能够做到 阅读全文
posted @ 2020-05-27 23:12 心媛意码 阅读(132) 评论(0) 推荐(0) 编辑
摘要:常常听说阻塞IO,又不太清楚阻塞O的情景,只落个云里雾里的感觉. 阻塞IO的场景包括一些具体函数执行时,比如accept(等待客户端连接),recv(等待发送),write(写文件),read(读文件);磁盘IO(比如文件的拷贝);下载和上传文件. 阻塞IO实际上耗费的CPU特别少,大部分工作被分配 阅读全文
posted @ 2020-05-18 17:09 心媛意码 阅读(159) 评论(0) 推荐(0) 编辑
摘要:windows下是区分线程和进程的,进程拥有进程描述符,描述地址空间,打开的文件等共享的资源,还有指向线程的指针,而线程没有进程描述符,只是拥有一些少量的私有数据. linux下不区分线程和进程,都会分配一个task_struct,只不过在创建线程时会传递一些参数来指明所共享的资源. 参考文章:ht 阅读全文
posted @ 2020-04-21 13:21 心媛意码 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:一.同步和互斥机制 信号量 互斥锁 同步:指多个任务按照约定的先后次序相互配合来完成一件事情. 比如读线程等待写线程写完之后再去读. 二.信号量-P/V操作 P(s)含义: if(信号量>0) { 申请资源的任务运行; 信号量--; } else {申请资源的任务阻塞} V(S)含义: 信号量++; 阅读全文
posted @ 2020-04-20 22:37 心媛意码 阅读(1445) 评论(1) 推荐(0) 编辑
摘要:一.概述 linux中不区分进程和线程,都认为是个任务,都是创建一个task_struct.如何区分?线程是共享相同地址空间,而进程是独占地址空间. 多线程共享同一进程的地址空间 优点: 通信方便,可以通过全局变量. 缺点: 访问共享数据时需要考虑同步和互斥. 二.线程共享资源: 可执行的指令 静态 阅读全文
posted @ 2020-04-20 14:43 心媛意码 阅读(1962) 评论(0) 推荐(0) 编辑
摘要:1.当linux和Windows中,主线程以return 0结束时,程序会在主线程运行完毕后结束.2.当linux中,主线程以pthread_exit(NULL)作为返回值,则主线程会等待子线程.#include<stdio.h> #include<unistd.h> #include<pthrea 阅读全文
posted @ 2020-04-19 11:13 心媛意码 阅读(1586) 评论(0) 推荐(0) 编辑
摘要:一.最小单位方面 进程是资源分配和管理的最小单元(为什么不是线程呢?因为线程自身所带的资源是不全的,还要用进程中资源) 线程是程序执行的最小单元. 二.切换成本 进程在创建时,系统需要给它分配独立的地址空间,需要用数据表来记录它的代码段,数据段以及堆栈段.当进行线程切换时,成本比较高,需要刷新cac 阅读全文
posted @ 2020-04-18 18:45 心媛意码 阅读(166) 评论(0) 推荐(0) 编辑
摘要:一.背景 今天看到一篇文章(https://www.xuebuyuan.com/1691810.html),讲到主线程等待子线程执行完毕,如何判断的问题.作者一开始采用的是简单的Sleep操作,但这种操作不能够保证正确而且效率还比较低. 于是作者自己设计了判断子线程结束的方法,我也就实践了这个方法. 阅读全文
posted @ 2020-04-17 18:03 心媛意码 阅读(287) 评论(0) 推荐(0) 编辑
摘要:一.背景 今天看了一篇有关volatile在多线程中使用的博客(自己对该博客的总结:https://i-beta.cnblogs.com/posts/edit;postId=11388620),里面的例子没有详细地进行代码实现.自己想要验证下这个问题,同时练习下多线程编程的招式,去专门实现了一下.发 阅读全文
posted @ 2020-04-15 22:15 心媛意码 阅读(409) 评论(0) 推荐(0) 编辑
摘要:让当前线程休眠,把cpu机会给到别的线程,等到休眠结束后,进入就绪状态再去和别的线程竞争CPU. 阅读全文
posted @ 2020-04-15 14:27 心媛意码 阅读(137) 评论(0) 推荐(0) 编辑
摘要:好文章的链接: https://blog.csdn.net/Pro2015/article/details/88786377 QF自己的总结: 之前一直都会看到EnterCriticalSection(cs)和LeaveCriticalSection(cs),知道他们是用来进行线程同步的. 假如存在 阅读全文
posted @ 2020-02-13 22:15 心媛意码 阅读(331) 评论(0) 推荐(0) 编辑
摘要:线程间的内存共享问题 你弄懂了吗?https://blog.csdn.net/a675311/article/details/48973883 重点摘录:这两个线程间的内存,指针是共享的。 (我:其实创建子线程时传递的this指针就是一个典型的例子)。 线程之间共享的资源有哪些 阅读全文
posted @ 2020-01-20 09:22 心媛意码 阅读(114) 评论(0) 推荐(0) 编辑
摘要:在程序开发时有时需要获取线程和进程ID以分析程序运行 (1)windows下获取进程或线程ID 通过调用系统提供的GetCurProcessId或GetNowThreadID来获取当前程序代码运行时的进程或线程ID 示例代码: #include "windows.h" printf("now pid is %d", GetCurrentProcessId()); printf("now tid... 阅读全文
posted @ 2019-12-08 20:33 心媛意码 阅读(8802) 评论(0) 推荐(0) 编辑
摘要:线程池,简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用,当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待线 阅读全文
posted @ 2019-11-03 22:50 心媛意码 阅读(158) 评论(0) 推荐(0) 编辑
摘要:作者:zhonyong链接:https://www.zhihu.com/question/25532384/answer/81152571来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。 阅读全文
posted @ 2019-11-03 21:46 心媛意码 阅读(218) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示