
高并发
赛博夫子qa
技术改变世界
展开
-
深入理解Java多线程与并发编程
深入理解Java多线程与并发编程 4.1 目标 多线程三大特性 Java内存模型 Volatile ThreadLoca 线程池 4.2 线程三大特性 多线程有三大特性,原子性、可见性、有序性 4.2.1 什么是原子性 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么必然包括2个操...原创 2019-04-20 10:40:56 · 199 阅读 · 0 评论 -
多线程之间实现通讯
多线程之间实现通讯 多线程之间如何通讯 wait、notify、notifyAll()方法 lock 停止线程 守护线程 Join方法 优先级 Yield 3.2 多线程之间如何实现通讯 3.2.1 什么是多线程之间通讯? 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。 画图演示 3.2.2 多线程之间通讯需求 需求:第一个线程写入(input)用户,另一个线程取读取(ou...原创 2019-04-20 10:39:27 · 1910 阅读 · 0 评论 -
多线程之间实现同步
理解线程安全? synchronized用法 死锁 2.2 什么是线程安全? 2.1 为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。 代码: class ThreadTrain1 implement...原创 2019-04-20 10:35:58 · 227 阅读 · 0 评论 -
多线程快速入门
多线程快速入门 1.1 课程目标 线程与进程 为什么要使用多线程? 多线程应用场景 多线程创建方式 练习题 线程生命周期 面试总结 练习题 1.2 线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作...原创 2019-04-20 10:35:18 · 157 阅读 · 0 评论 -
多线程、架构、异步消息、Redis等性能优化策略
1.代码 之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视。很多技术人员拿到一个性能优化的需求以后,言必称缓存、异步、JVM等。实际上,第一步就应该是分析相关的代码,找出相应的瓶颈,再来考虑具体的优化策略。有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等。 2.数据库 数据库的调优,总的来说...原创 2019-04-19 21:42:33 · 336 阅读 · 0 评论 -
分布式锁的由来、特点、及Redis分布式锁的实现详解
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。 什么是分布式锁 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同...原创 2019-04-19 21:40:22 · 540 阅读 · 0 评论