1. 互斥锁: 对全局变量进行锁定,保证同一时刻只有一个线程在操作共享全局变量,保证了共享数据操作的完整性 互斥锁应用场景: 资源竞争问题 互斥锁的缺点: 阻止了多线程并发执行,含锁的代码只能以单线程模式执行,效率就大大地下降了; 容易出现死锁问题; 2. 死锁问题: 在两个或多个线程中,如果每个线 ...
分类:
编程语言 时间:
2020-08-08 21:19:12
阅读次数:
81
一、线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。 程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 线程安全问题都是由全局变量及静态变量引起的。 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量 ...
分类:
编程语言 时间:
2020-08-05 10:31:44
阅读次数:
62
写在前面上一篇文章共享资源那么多,如何用一把锁保护多个资源?文章我们谈到了银行转账经典案例,其中有两个问题:单纯的用synchronized方法起不到保护作用(不能保护target)用Account.class锁方案,锁的粒度又过大,导致涉及到账户的所有操作(取款,转账,修改密码等)都会变成串行操作如何解决这两个问题呢?咱们先换好衣服穿越回到过去寻找一下钱庄,一起透过现象看本质,dengdengd
分类:
其他好文 时间:
2020-08-02 10:24:28
阅读次数:
91
1、创建定时任务: @Component public class AutoNotifyController { /** * 获取RedisUtils注入的bean * * @return */ private ThreadUtil getThreadUtil() { ThreadUtil thre ...
分类:
编程语言 时间:
2020-07-30 16:53:27
阅读次数:
71
1.redis是单线程,高性能的key/value内存数据,基于内存运行并支持持久化的NoSQL数据库 2.redis主要用来做缓存,但不仅仅是做缓存,例如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存 安装单节点redis 1、安装gcc套装: yum instal ...
分类:
其他好文 时间:
2020-07-29 21:49:59
阅读次数:
75
# import time # #使用单线程串行方式执行 # def get_page(str): # print("正在下载:", str) # time.sleep(2) # print("下载成功:", str) # name_list = ["aa","bb","cc","dd"] # st ...
分类:
编程语言 时间:
2020-07-28 10:04:21
阅读次数:
66
这篇借助于同事准备的技术分享,书本知识,自己的理解梳理而成 高级程序设计第三版: js 是一门单线程的语言,运行于单线程的环境中,例如定时器等并不是线程,定时器仅仅只是计划代码在未来的某个时间执行,浏览器负责排序,指派某段代码在某个时间点运行 的优先级 1.为什么规定浏览器必须是单线程? JS主要用 ...
分类:
Web程序 时间:
2020-07-26 19:04:37
阅读次数:
107
一、协程基础 cpython下多个线程不能利用多核:规避了所有的io操作的单线程。 协程 操作系统不可见 协程本质就是一条线程,多个任务在一条线程上来回切换,来规避io操作,降低了线程上的io操作降到最低。 4 cpu:可以接受5个进程,20个线程,协程500 切换并规避IO的模块 gevent 利 ...
分类:
其他好文 时间:
2020-07-26 19:02:39
阅读次数:
53
NoSql 概述 Redis 入门 Redis 概述 Redis 是单线程的 关方表示,Redis是基于内存操作的,CPU不是Redis的瓶颈,Redis 的瓶颈是根据机器的内存和网络带框,单线程能实现 误区一 :高性能的服务器一定是多线程的 误区2: 多线程的的一定比单线程的快(CUP>内存>硬盘 ...
分类:
其他好文 时间:
2020-07-26 01:36:41
阅读次数:
100
@ 前言 JVM的自动内存管理得益于不断发展的垃圾回收器,从最初的单线程收集到现在并发收集,垃圾回收器的开发者们一直在致力于如何降低GC过程中的停顿时间(STW)以及提高吞吐量,但直到现在也不存在一款完美的垃圾回收器,只能根据不同的场景选择最合适的。所以需要了解每款垃圾回收器出现的背景、原因,并掌握 ...
分类:
其他好文 时间:
2020-07-26 00:56:18
阅读次数:
55