![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
小树ぅ
放弃不难 但坚持一定很酷!
展开
-
【多线程】进程和线程的区别
1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位) 2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。 而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。 3、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的原创 2021-03-09 21:02:21 · 747 阅读 · 0 评论 -
【多线程】多线程原子性:CAS以及ABA问题
CAS(Compare And Swap (Compare And Exchange)比较并交换):没有锁的状态下可以保证多个线程对某个值的更新 通常情况下为了保证安全,在一个线程对一个数值访问时要上锁,但是为了保证效率,CAS中是不上锁的。 列如: 现在有一个值为0,读取这个值,并且将其存在E中,则:E=0。然后对E进行递增运算,有计算结果设为V。E++后,设一个新的值为N(即:N=E++),这时去查看E,如果E还是为0,则表明没有其他的线程修改E,这时就将...原创 2021-03-09 20:56:01 · 214 阅读 · 0 评论