1、多线程有什么用? (1)发挥多核CPU的优势: 当前,应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得 ...
分类:
编程语言 时间:
2019-11-06 22:39:53
阅读次数:
97
一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题。 在运用了 限流/加锁等方案后,问题得到解决。 限流方案见本人另一篇博客:Guava-RateLimiter实现令牌桶限流 二.乐观 ...
分类:
编程语言 时间:
2019-10-30 16:24:49
阅读次数:
111
课程目录: 1-1、并发编程入门到实战课程简介1-2、什么是并发编程1-3、并发编程的挑战之频繁的上下文切换1-4、并发编程的挑战之死锁1-5、并发编程的挑战之线程安全1-6、并发编程的挑战之资源限制2-1、进程与线程的区别2-2、线程的状态及其相互转换2-3、创建线程的方式(上)2-4、创建线程的 ...
分类:
编程语言 时间:
2019-10-28 22:35:34
阅读次数:
139
概述 并发编程是Java语言的重要特性之一,它能使复杂的代码变得更简单,从而极大的简化复杂系统的开发。并发编程可以充分发挥多处理器系统的强大计算能力,随着处理器数量的持续增长,如何高效的并发变得越来越重要。但是开发难,并发更难,因为并发程序极易出现bug,这些bug是比较诡异的,跟踪难,且难以复现。 ...
分类:
编程语言 时间:
2019-10-26 17:09:13
阅读次数:
90
Java中具有通过Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是互有补充,今天就来做一个总结。
分类:
编程语言 时间:
2019-10-25 16:42:21
阅读次数:
81
1-什么是happens-before? (1)happens-before是定义了 Java 多线程操作的有序性和可见性,防止了编译器重排序对程序结果的影响的一种规则。 (2)happens-before原则: 1)as-if-serial原则。(线程中的每个操作都在该线程后的操作之前执行) 2) ...
分类:
移动开发 时间:
2019-10-22 00:41:30
阅读次数:
142
进程 一个进程对应一个应用程序,在多进程环境下,各进程需要竞争CPU时间片来执行自己的指令。使用多进程的作用在于提高CPU的使用率,因为一般来说,CPU的频率是远高于内存读写速度的,多进程可以有效利用CPU的空闲时间。 其次,多进程可以实现多个应用程序同时进行工作的服务。在单核时,在同一点上是只能运 ...
分类:
编程语言 时间:
2019-10-20 00:53:28
阅读次数:
102
v java多线程面试题选择题大全含答案 java多线程面试题选择题大全含答案 1.下面程序的运行结果()(选择一项)public static void main(String[] args) {Thread t=new Thread(){public void run(){pong();}};t ...
分类:
编程语言 时间:
2019-10-17 11:49:05
阅读次数:
1382
Lock Lock提供了与synchronized类似的同步功能,只是在显式的获取和释放锁,因此有了锁获取和释放的可操作性、可中断的获取锁以及超时获取锁等多种同步特性。 代码实例: 特性 尝试非阻塞地获取锁:当前线程尝试获取锁,如果这一时刻锁没有被其它线程获取到,则成功获取并持有锁; 能被中断地获取 ...
分类:
编程语言 时间:
2019-10-15 19:24:47
阅读次数:
118