首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在jdk java.util 并发包中已经为我们提供了这些方法去加锁, 比如synchronized 关 ...
分类:
其他好文 时间:
2019-03-08 18:36:01
阅读次数:
131
进程来完成并发,线程并发 IO复用,协程都是处理并发的方式 socket分为 三步 服务器监听,客户端请求,连接确认, 每次连接都由当前进程来处理,可以通过IO复用来解决这个问题, 这次通过进程来完成并发请求,但是这种方式开销大,消耗较多,频繁的创建和销毁也是耗时 线程并发 IO复用 等下次在贴代码 ...
分类:
Web程序 时间:
2019-03-06 10:40:16
阅读次数:
297
一、线程与进程的区别 先简单说说线程与进程的概念: (1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程。 (2)线程是指进程中的一个执行流程。 区别: 一个程序至少有一个进程,而一个进程至少有一个线程。一个应用程序可以同时启动多个进程。例如对于IE浏览器 ...
分类:
编程语言 时间:
2019-03-04 11:21:42
阅读次数:
161
synchronized: https://www.cnblogs.com/dolphin0520/p/3923737.html Lock:https://www.cnblogs.com/dolphin0520/p/3923167.html ...
分类:
编程语言 时间:
2019-03-02 21:14:58
阅读次数:
194
java基础 数据类型 集合与数据结构 关键字(static,rty ...) IO和网络 多线程(并发与锁,死锁) 异常 简单算法,复杂度 JVM 类加载 java内存模型 对象监听器字节码 垃圾回收 内存分析命令 常用框架,结合设计模式 spring,springMVC 和 struts(设计和 ...
分类:
编程语言 时间:
2019-02-27 01:30:37
阅读次数:
204
基于redis 利用redis的乐观锁,实现秒杀系统的数据同步(基于watch实现) 用户一: 用户二: 注:windows下如果数据被修改了,不会抛异常,只是返回结果的列表为空,mac和linux会直接抛异常 秒杀系统核心逻辑测试,创建100个线程并发秒杀 ...
分类:
其他好文 时间:
2019-02-26 17:41:51
阅读次数:
198
一、CAS (Compare And Swap): CAS(Compare And Swap),即比较并交换 CAS(V,E,N)。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——要更新的变量(V)、预期原值(E)和新值(N)。核心算法是如果V 值等于E 值,则将V ...
分类:
编程语言 时间:
2019-02-26 15:09:24
阅读次数:
252
###24.01_多线程(多线程的引入)(了解) * 1.什么是线程 * 线程是程序执行的一条路径, 一个进程中可以包含多条线程 * 多线程并发执行可以提高程序的效率, 可以同时完成多项工作 * 2.多线程的应用场景 * 红蜘蛛同时共享屏幕给多个电脑 * 迅雷开启多条线程一起下载 * QQ同时和多个 ...
分类:
编程语言 时间:
2019-02-26 01:29:46
阅读次数:
185
常用的同步方法是采用信号或加锁机制,保证资源在任意时刻至多被一个线程访问。Java语言在多线程编程上实现了完全对象化,提供了对同步机制的良好支持。在Java中一共有四种方法支持同步: ...
分类:
编程语言 时间:
2019-02-22 18:30:29
阅读次数:
171
在多线程并发编程的过程中,执行重排序有时候会造成错误的后果,比如一个线程在main线程中调用setFlag(true)的前边修改了某些程序配置项,而在t1线程里需要用到这些配置项,所以会造成配置缺失的错误。但是java给我们提供了一些抑制指令重排序的方式。 1.同步代码抑制指令重排序 将需要抑制指令 ...
分类:
编程语言 时间:
2019-02-21 00:33:56
阅读次数:
205