
多线程
bxw1992
这个作者很懒,什么都没留下…
展开
-
多线程程序中操作的原子性
原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操作?转载 2017-06-28 21:29:02 · 257 阅读 · 0 评论 -
synchronized
synchronized参考资料https://zhuanlan.zhihu.com/p/29866981synchronized基础Java对象由对象头和对象体组成,对象体存储的是对象的属性值。对象头包含3部分: Mark Word(64bit) 用来记录锁信息、GC年龄、hashCode 锁信息lock由2bit位表示,当lock为01时,需要1bit的bias...原创 2020-02-09 23:45:38 · 172 阅读 · 0 评论 -
Java 线程
一、线程状态备注:这个图唯一的问题是 o.wait() 超时后,会进入blocked状态,等待获取锁。阻塞状态不会被分配CPU原创 2020-01-16 14:01:14 · 153 阅读 · 0 评论 -
线程的深入理解
wait和notify :https://blog.youkuaiyun.com/hemeinvyiqiluoben/article/details/82990817线程状态:https://blog.youkuaiyun.com/qq_22771739/article/details/82529874Monitor机制:https://www.jianshu.com/p/7f8a873d479c阻塞...原创 2019-12-27 10:10:49 · 132 阅读 · 0 评论 -
同一进程间的线程共享和独立的资源
共享的资源有a. 堆 由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,转载 2017-08-06 13:13:58 · 2004 阅读 · 0 评论 -
线程安全
整理自知乎:https://www.zhihu.com/question/26595480/answer/33533759https://www.zhihu.com/question/23244293/answer/24032098 线程安全有不止一种定义,而且互不兼容。 比较认可的是在《Java concurrency inpractice》一书中的定义:原创 2017-07-06 23:17:22 · 297 阅读 · 0 评论 -
STL容器线程安全
摘抄整理自《Effective STL》对STL容器线程安全性的期待现实一些标准C++的世界是相当保守和陈旧的。在这个纯洁的世界,所有可执行文件都是静态链接的。不存在内存映射文件和共享内存。没有窗口系统,没有网络,没有数据库,没有其他进程。在这种情况下,当发现标准没有提到任何关于线程的东西时你不该感到惊讶。你对STL的线程安全有的第一个想法应该是它将因实现而不同。当然,多线程程序是原创 2017-07-07 13:23:34 · 612 阅读 · 0 评论 -
Linux下的多进程编程
文章摘要: 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多线程程序的一些初步知识。-------------------------------------------------------------------------------转载 2017-07-01 20:59:19 · 277 阅读 · 0 评论 -
linux子进程执行起点
子进程继承了父进程的程序计数器的当前值,也就是继承了fork()语句执行时父进程当前的环境,而不是程序的初始环境,所以子进程从fork()语句之后开始执行。转载 2017-07-01 19:52:28 · 812 阅读 · 0 评论