synchronized与volatile关键字 一、 synchronized synchronized是Java语法中的一个内置锁的实现。synchronized关键字解决了代码块或者方法上的同步问题,同一时间,只有一个线程能够通过并执行。提供了并发场景的一个共享资源访问的解决方案。 当我们说s ...
分类:
编程语言 时间:
2020-03-03 20:34:49
阅读次数:
95
ScheduledThreadPoolExecutor继承了ThreadPoolExecutor,是一个指定一定延迟时间后或者定时进行任务调度执行的线程池 参考自《java并发编程之美》 ...
分类:
其他好文 时间:
2020-02-04 00:14:40
阅读次数:
100
前言 从开始学习编程之后,就渐渐痴迷于技术,平时遇到购书满减活动时就忍不住买一堆书。前两天闲着无聊,翻开了去年买的《编程之美》,目录里的“让 CPU 占用率听你指挥”吸引力我的眼球。这一年来捣鼓数据挖掘和机器学习,总会关注代码运行效率,偶尔会思考如何提高 CPU、GPU 的利用率。于是马上翻开了这一 ...
分类:
其他好文 时间:
2020-01-22 21:56:27
阅读次数:
102
1.迭代是人,递归是神!从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。2.递归递归就是函数自己调用自己。2.1构成递归需具备的条件:子问题须与原始问题为同样的事,且更为简单;不能无限制地调用本身,须有个出口,化简
分类:
其他好文 时间:
2019-12-31 15:55:46
阅读次数:
101
题目 和数书页有点类似,就直接数吧 可循环输入,运行效果 问题2 ...
分类:
其他好文 时间:
2019-11-04 13:34:16
阅读次数:
76
该文出自于编程之美中关于最大公约数问题一章。 任意给定两个数字,得到其最大公约数 GCD(greatest common divisor),如果两个数字都很大怎么解决。 分析:最大公约数早在公元前300年,欧几里得的《几何原本》里就提出了一个高效率算法 辗转相除法。 解法一: 假设f(x,y)表示x ...
分类:
其他好文 时间:
2019-08-31 14:43:22
阅读次数:
101
java并发编程实践 11.1ArrayBlockingQueue的使用 有关logback异步日志打印中的ArrayBlockingQueue的使用 1、异步日志打印模型概述 在高并发、高流量并且响应时间要求比较小的系统中同步打印日志在性能上已经满足不了了,这是以因为打印本身是需要写磁盘的,写磁盘 ...
分类:
编程语言 时间:
2019-08-18 17:46:36
阅读次数:
96
java并发包中的并发List 5.1CopeOnWriteArrayList 并发包中的并发List只有CopyOnWriteArrayList,该类是一个线程安全的arraylist,对其进行的修改操作都是在底层的一个复制数组上进行的,也就是使用了写时复制策略。 该类的结构: 问题: 何时初始化 ...
分类:
编程语言 时间:
2019-08-10 21:36:37
阅读次数:
121
2.1什么是多线程并发编程 并发:是指在同一时间段内,多个任务同时在执行,并且执行没有结束(同一时间段又包括多个单位时间,也就是说一个cpu执行多个任务) 并行:是指在单位时间内多个任务在同时执行(也就是多个cpu同时执行任务) 而在多线程编程实践中,线程的个数一般是多于cpu的个数的 2.2为什么 ...
分类:
编程语言 时间:
2019-08-10 00:08:08
阅读次数:
160
1.1什么是线程? 在理解线程之前先要明白什么是进程,因为线程是进程中的一个实体。(线程是不会独立存在的) 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程中的一个执行路径,一个进程中至少会有一个线程,进程中的多个线程共享进程的资源。 线程:是cpu分配的基本 ...
分类:
编程语言 时间:
2019-08-09 01:24:09
阅读次数:
89