- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 JUC的各种同步锁
Atomic** 类 采用的是CAS方式LongAdder类 采用的是分段锁package juc.lock;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.LongAdder;public class AtomicVSSynchronized { static long count1 = 0; static AtomicInteger co...
2020-07-26 22:53:02 244 1
原创 学习volatile
volatile关键字的特性保证代码执行的有序性 内存屏障 可见性 MESI 缓存一致性协议 但是volatile不能保证程序的原子性在下面这个例子里,count++表示了取值,计算和存储三个步骤,指的是不能保证这三个步骤的原子性,虽然count值可见,但是整个计算过程volatile不能保证。package juc.volatil;import java.util.ArrayList;import java.util.List;//volatile的不能保证原子.
2020-07-23 13:40:12 81
原创 Synchronized的前因后果
为什么要锁当多个线程要对同一个目标进行修改的时候,为了保证数据的一致性,有序性,所以进行加锁。通过对一个对象进行加锁,只有一个线程拿到这个对象,才能执行一段代码。synchronized的基本知识点 synchronized方法的变型 同步方法和非同步方法可否一起调用? Synchronized可重入? 异常该线程会释放锁 JVM的锁的底层实现hotspot的实现,是锁的对象上面有一个64位的markword,64位中的2位用来判断对象是否..
2020-07-13 22:35:43 167
原创 线程的基本概念-马士兵线程学习笔记
理解线程其实搞清楚线程和进程的关系就很好理解线程了。比如说你开一个微信,那微信就是一个进程, 但是微信里你同时和不同的人聊天,那不同的窗口就是一个个线程。线程实际就是可执行程序的最小单元, 是一个进程的不同执行路径。线程的两种创建方式线程的创建有很多种写法,但是归根结底就只有两种,一种是实现runnable接口,一种是继承Thread类public class HowToCreateThread{ static class MyThread extends Thread{
2020-07-11 21:10:11 304
原创 ADADELTA
1. 现状:大多数的梯度下降算法都需要选择学习率的超参数。设置学习率通常要不断调整,而较好的学习率一般是手动设置的。 学习率设置的过高会使得系统发散,但选择的过小又会使学习过程变慢。对于很多问题而言,选择一个好的学习率更像是艺术而不是科学。 2. 解决问题:引入新的“动态学习率”来减轻原先需要反复选择学习率的重复任务。这种方法在每个维度上计算时只需要一阶导数信息,并且在每次在梯度下降的...
2018-11-28 12:10:06 3486
原创 Financial API
google API:import urllib2import jsonimport timeclass GoogleFinanceAPI: def __init__(self): self.prefix = "http://finance.google.com/finance/info?client=ig&q=" def get(self
2013-07-01 22:34:00 376
原创 Eclipse+QT+python+pydev开发
1. 安装Eclipse3.3.2 + CDT 因为我已经有3.3.2了,所以必须另外安装CDT 下载地址:http://www.eclipse.org/cdt/downloads.php 下载以后解压缩,把对应的plugin和feature文件夹放到对应的ECLIPSE下 对于安装CDT, 其中org.eclipse.cdt.core.win32.source_5
2013-05-13 22:25:39 739
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人