1,几个概念: GIL: Global Interpreter Lock,全局解释器锁。为了解决多线程之间数据完整性和状态同步的问题,设计为在任意时刻只有一个线程在解释器中运行。 线程:程序执行的最小单位。 进程:系统资源分配的最小单位。 线程安全:多线程环境中,共享数据同一时间只能有一个线程来操作 ...
分类:
编程语言 时间:
2020-03-27 21:37:25
阅读次数:
92
组件间发通知可以使用 observer.pub,其他组件在 componentDidMount中 observer.sub。在新的react中已经不再使用ref,取而代之的 onRef={ (node) => this.xxx = node }然后使用 this.xxx调用方法。组件间共享数据可以使 ...
分类:
其他好文 时间:
2020-03-26 19:58:20
阅读次数:
69
并发控制 并发情况下,需要做一些控制(一般是加锁),保证共享数据的一致性。 并发操作数据库时,需要给数据库中的数据加锁,确保数据库中数据的一致性。 数据库锁的常见分类 按使用方式来分:悲观锁、乐观锁 按锁级别来分:共享锁、排它锁(主要是这2种,当然还有其他的) 按锁粒度来分:行级锁、表级锁、页级锁 ...
分类:
数据库 时间:
2020-03-25 21:47:21
阅读次数:
82
锁优化 自旋锁和自适应锁: 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要从用户态转到核心态中去完成。这些操作给操作系统的并发性能带来了很大的压力。同时,在 很多应用上,共享数据的锁定状态只会持续很短的一段时间,为了这段时间去挂起和恢复线程并不值得。如果物理机器上有一个以上的处 ...
分类:
其他好文 时间:
2020-03-23 18:55:17
阅读次数:
107
Synchronize是重量级锁吗?是互斥锁吗? 它的实现原理? 前言 线程安全是并发编程中的重要关注点,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多个线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时 ...
分类:
编程语言 时间:
2020-03-22 19:58:58
阅读次数:
296
带着问题去思考,大家好! 前几天了解到EF Core的开发模式:DB First(数据库优先),Model First(模式优先),Code First(代码优先)。 我所接触的大多是DB First。如果大家了解的话,有些开源后台项目,基本都会有后两者,因为方便大家更快的去使用部署起来后台。 在建 ...
分类:
其他好文 时间:
2020-03-22 14:19:59
阅读次数:
69
多线程共享数据(多个线程共同访问相同的数据),需要进行数据同步,保证同一数据、同一时刻只能被一个线程访问。 使用同步是为了防止多个线程同一时刻对同一数据进行读写,如果对同一数据数据都只进行读操作、不进行修改,则不必使用同步。 以售票为例 不使用同步 public class SaleTicketTh ...
分类:
编程语言 时间:
2020-03-22 12:27:00
阅读次数:
99
说明 channel是go当中的一个核心类型,可以看做是管道。并发核心单元可以通过channel进行数据的发送和接收,从而实现通信。 在go中,channel是一种数据类型,主要被用来解决协程的同步问题以及协程之间数据共享(数据传递)的问题。 go当中的goroutine运行在相同的地址空间,因此访 ...
分类:
其他好文 时间:
2020-03-21 09:37:10
阅读次数:
61
会话技术 1. 会话:一次会话中包含多次请求和响应。 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2. 功能:在一次会话的范围内的多次请求间,共享数据 3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:Session Cookie: 1. 概念: ...
分类:
其他好文 时间:
2020-03-18 09:21:31
阅读次数:
65
http是无状态的,如果需要在多个链接间共享数据,就要在服务器上一个可共享的全局位置,保存可在多个链接间反复使用的状态和数据。 PHP中,session是服务器内存中一个关联数组对象, session允许将数据存储在web服务器上,从而在整个用户会话过程中保持任何数据。 用户会话是指用户在浏览某个网 ...
分类:
其他好文 时间:
2020-03-16 15:14:41
阅读次数:
59