线程、进程、队列、IO多路模型 操作系统工作原理介绍、线程、进程演化史、特点、区别、互斥锁、信号、事件、join、GIL、进程间通信、管道、队列。生产者消息者模型、异步模型、IO多路复用模型、select\poll\epoll 高性能IO模型源码实例解析、高并发FTP server开发``` 一、问 ...
分类:
其他好文 时间:
2018-05-04 01:32:44
阅读次数:
548
一 .概述 在前面我们使用synchronized完成了一个原子方法的实现.现在我们需要深入的理解这个关键词. 二 . 使用方式 对于这个关键词我们的使用方式有四种: [1]修饰普通方法 [2]修饰静态方法 [3]对实例对象加互斥锁 [4]对类对象加互斥锁 我们首先需要知道的就是synchroniz ...
分类:
其他好文 时间:
2018-05-01 20:37:40
阅读次数:
121
一 . 概述 之前我们提到了线程并发出现的安全问题,最为简单的一种处理方案就是使用互斥锁. 在java之中任何一个对象都可以作为一个互斥锁,这种互斥锁通常配合synchronized来使用. 二 . 测试用例 上面的例子描述的问题很简单: 创建一个方法,这个方法可以为一个共享变量不断的自增. 现在创 ...
分类:
其他好文 时间:
2018-05-01 20:36:29
阅读次数:
132
RWMutex:是基于Mutex实现的读写互斥锁,一个goroutine可以持有多个读锁或者一个写锁,同一时刻只能持有读锁或者写锁 ...
分类:
其他好文 时间:
2018-04-30 22:06:53
阅读次数:
136
在说明之前我先抛出结论:互斥锁和二值信号量在使用上非常相似,但是互斥锁解决了优先级翻转的问题 假定我们现在有三个任务,task1,task2,task3,任务优先级task1最高,然后依次降低。我们知道在系统调度的时候当两个任务同时处于就绪态的时候,系统会优先执行优先级高的任务 好了,让我们来看两个 ...
分类:
其他好文 时间:
2018-04-29 12:04:38
阅读次数:
219
前言:前面有篇博客已经介绍了线程、线程的信号量和互斥锁,请参考博客:http://www.cnblogs.com/liudw-0215/p/8966645.html,接下来将介绍线程池。 一、理解 线程池能有效的处理多个线程的并发问题,避免大量的线程因为互相强占系统资源导致阻塞现象,能够有效的降低频 ...
分类:
编程语言 时间:
2018-04-28 19:22:07
阅读次数:
219
前言:有个问题感觉一直会被问道:进程和线程的区别?也许之前我会回答: 进程:资源分配最小单位 线程:轻量级的进程 是系统调度的最小单位 由进程创建 多个线程共享进程的资源 但是现在我觉得一个比喻回答的更好:程序就像静止的火车,进程是运行的火车,线程是运行火车的每节车厢。 个人感觉理解远比背些概念性东 ...
分类:
编程语言 时间:
2018-04-28 14:07:00
阅读次数:
191
一、GIL:全局解释器锁 1 、GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码 2、GIL的优缺点: 优点: 保证Cpython解释器内存管理的线程安全 缺点:同一进程内所有的线程同一时刻只能有一个执行,也就说Cp ...
分类:
编程语言 时间:
2018-04-27 16:49:41
阅读次数:
181
GIL 多进程多线程使用场景 线程互斥锁与GIL对比 基于多线程实现并发的套接字通信 进程池与线程池 同步、异步、阻塞、非阻塞 ...
分类:
编程语言 时间:
2018-04-27 16:47:39
阅读次数:
226
GIL全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的,同一个进程内的所有线程都需要先抢到GIl锁,才能执行解释器代码 GIL的优缺点: 优点:保证Cpython解释器内存管理的线程安全 缺点:同一个进程内所有的线程同一时刻只能有一个执行,也就是说Cpython解释器的多线程无法实现并行, ...
分类:
编程语言 时间:
2018-04-27 16:46:09
阅读次数:
202