在Python中,可以通过多进程、多线程和多协程来实现多任务。 在多线程的实现过程中,为了避免出现资源竞争问题,可以使用互斥锁来使线程同步(按顺序)执行。 但是,其实Python的CPython(C语言实现的)解释器上有一把GIL锁,也就是说Python的程序是处于一个解释器锁的环境中的。 一、GI ...
分类:
编程语言 时间:
2020-02-18 20:52:01
阅读次数:
83
引言 这部分内容详解线程的同步与互斥,解决线程同步与互斥的主要方式是 CAS、synchronized 和 lock。 CAS 与 ABA 问题 什么是 CAS ? CAS 是乐观锁的一种实现方式,是一种轻量级锁,JUC 中很多工具类的实现都是基于 CAS 的,用于解决线程的同步与互斥。解决线程同步 ...
分类:
编程语言 时间:
2020-02-18 13:21:40
阅读次数:
100
什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。UDP(User Data Protocol,用户数据报协议)是与TCP相对应 ...
分类:
其他好文 时间:
2020-02-17 23:45:35
阅读次数:
64
//创建互斥量 HANDLE g_hMutex = NULL; WaitForSingleObject(g_hMutex, INFINITE); ReleaseMutex(g_hMutex); ...
分类:
编程语言 时间:
2020-02-17 16:09:37
阅读次数:
68
socket编程本地进程间通信(IPC)?队列?同步(互斥锁、条件变量等)?管道网络进程间通信问题:本地通过进程PID来唯一标识一个进程,在网络中如何唯一标识一个进程?网络层的“IP地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。因此利用IP地址,协议,端口就可以标识网络的进程。什么是socket?socket(简称套接字)是进程间通信的一种方式,能实
分类:
编程语言 时间:
2020-02-15 11:31:11
阅读次数:
68
备份的应用场景 在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。 这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。 使用mysqldump备份(导出)固定条件的数据库 mysqldump 命令在终端使用 ...
分类:
数据库 时间:
2020-02-15 09:40:58
阅读次数:
70
1.线程加锁 多个线程需要共享对同一个数据的访问。如果每个线程都会调用一个修改共享数据状态的方法,那么,这些线程将会互相影响对方的运行。在Java语言中,引入对象互斥锁的概念,保证共享数据操作的完整性。每个对象都对应一个可称为“互斥锁”的标记,这个标记保证在任一时刻,只能有一个线程访问对象。就像上一 ...
分类:
编程语言 时间:
2020-02-14 14:40:35
阅读次数:
88
现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 1. 互斥性,同一时刻,只能有一个客户端持有锁。 2. 防止死 ...
分类:
其他好文 时间:
2020-02-12 14:51:57
阅读次数:
130
分布式锁 分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。 举个不太恰当的例子:假设共享的资源就是一个房子,里面有各种书,分布式系统就是要进屋看书的人,分布式锁就是保证这个房子只有一个门并且一次只有一个人可以进,而且门只有一把钥匙。然后许多人要去看书,可以,排... ...
分类:
其他好文 时间:
2020-02-08 13:59:23
阅读次数:
74
健康检查模块 见前文:[nginx] nginx源码分析--健康检查模块 其中有一张框架图, 接下来的内容,将会利用到这个图中的内容。 [classic_tong @ https:////www.cnblogs.com/hugetong/p/12274125.html ] 描述 我们知道nginx是 ...
分类:
其他好文 时间:
2020-02-07 20:44:37
阅读次数:
104