并发编程目录 并发编程之进程 "1 1 进程理论" "1 2 开启进程的两种方式" "1 3 join方法" "1 4 守护进程" "1 5 互斥锁" "1 6 队列" "1 7 生产者消费者模型" 并发编程之线程 "2 1 线程理论" "2 2 开启线程的两种方式" "2 3 多线程和多进程的区别 ...
分类:
其他好文 时间:
2019-10-13 10:30:27
阅读次数:
119
共享变量的并发访问synchronized同步方法方法内部的变量为线程安全变量实例变量为非线程安全变量同一个类的synchronized同步方法的锁事对象锁,是当前对象实例。类A中有synchronized方法methodA()和 非同步方法methodB(),则一个线程调用类A实例a的method... ...
分类:
其他好文 时间:
2019-10-11 10:42:48
阅读次数:
84
在jdk1.6之前,Monitor的实现完全是一句操作系统内部的互斥来实现的,当线程被挂起的时候,需要从用户态切换到内核,是重量级的操作 在1.6之后,对synchronized进行了优化操作, JVM提供了三种不同的 Monitor 实现,也就是三种不同的锁: 偏向锁 轻量级锁 重量级锁 JVM根 ...
分类:
其他好文 时间:
2019-10-11 01:16:44
阅读次数:
82
java中的锁 Java锁的类别 java中的锁按照不同的类别可以有如下的分类: 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级 ...
分类:
编程语言 时间:
2019-10-02 22:36:41
阅读次数:
105
2019-10-01 关键字:进程、线程、信号量、互斥锁 什么是程序? 程序就是存放在磁盘上的指令和数据的有序集合,就是源代码编译产物。 它是静态的。 什么是进程? 进程就是操作系统为执行某个程序所分配的资源的总称。进程是程序的一次执行过程,因此它与程序不同,它是动态的。它的生命周期包括创建、调度、 ...
分类:
编程语言 时间:
2019-10-01 16:01:47
阅读次数:
107
2019-09-24 1、为什么使用redis 分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要 ...
分类:
其他好文 时间:
2019-09-24 15:50:56
阅读次数:
54
一、go语言竞争状态、原子函数、互斥锁 下面代码例子是展示并发下公共数据操作,通过原子函数和互斥锁怎么解决。 package main import ( "sync" "runtime" "fmt" "sync/atomic" ) var( // counter是所有goroutine都要增加的变量 ...
分类:
编程语言 时间:
2019-09-24 10:28:13
阅读次数:
108
一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理。 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行的修改,没错,速度是慢了,牺牲了速度而保证了数据安全。 1.上厕所的小例子:你上厕所的时候肯定得锁门... ...
分类:
编程语言 时间:
2019-09-23 22:31:32
阅读次数:
122
一、GIL全局解释器锁 cpython中自带的GIL全局解释器,GIL本身就是一把互斥锁 重点: 其实就算我们在程序中写了一个线程的并行操作,实际上GIL会因为垃圾回收机制的问题,操作系统调度的问题,会把并行的线程还是变成了串行,这正是这个GIL全局解释器锁导致了同一进程的同一时刻只有一个线程在运行 ...
分类:
其他好文 时间:
2019-09-22 22:04:41
阅读次数:
127
Python程序中的线程操作 锁 一、同步锁 1.1多个线程抢占资源的情况 1.1.1对公共数据的操作 1.2同步锁的引用 1.3互斥锁与join的区别 有的同学可能有疑问:既然加锁会让运行变成串行,那么我在start之后立即使用join,就不用加锁了啊,也是串行的效果啊 没错:在start之后立刻 ...
分类:
编程语言 时间:
2019-09-22 19:37:36
阅读次数:
91