![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
*King*
这个作者很懒,什么都没留下…
展开
-
Synchronized关键字
锁:对象当中的一个标识 加锁:就是去改变这个对象的标识的值 加锁成功:让方法正常返回 加锁失败:让失败的这个线程死循环或者阻塞 对象由对象头,实例数据,对齐填充组成。(图) 一般家用笔记本都是小端模式:高字节存在高地址,低字节存在低地址 偏向锁:先判断是否可偏向,然后判断是否偏向了,拿到当前的线程id,通过cas,设置到对象头 总结 当一把锁第一次被线程持有的时候是偏向锁, 如果这个线程再次加锁还是偏向锁, 如果别的线程来加锁(交替执行)膨胀为轻量锁, 如果是资源竞争膨胀为重量锁。 CAS c原创 2020-12-14 01:08:46 · 337 阅读 · 0 评论 -
并发编程基础知识
java中的线程与操作系统的线程的关系: linux操作系统的线程控制原语 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); pthread_create会创建一个线程,这个函数是linux系统的函数,可以用C 或者C++直接调用,函数有四个参数: Linux上启动一个线程的代码 //头文件 #include <pthread原创 2020-11-01 10:38:35 · 227 阅读 · 0 评论 -
线程之前的共享和协作
线程基础 1、什么是进程和线程 操作系统进行资源分配的最小单位(例打开一个应用程序) 线程是CPU调度的最小单位(必须依赖进程) CPU核心数和线程数的关系:一个CPU的内核可以执行一个线程,但Intel引用了超线程技术。内核:逻辑处理器(1:2) CPU时间片轮转机制(又叫RR调度):CPU时间切片,每个进程分配一个时间段 CPU :1.6G执行一个指令的时间大概0.6纳秒(1秒=10亿纳秒) 代价:上下文切换(很耗CPU时间,一次上下文切换2万个CPU时间周期) 2、并行和并发 并行:可以同时运行的任原创 2020-06-01 00:11:06 · 147 阅读 · 0 评论