原子更新引用类型 发表于 2018-10-07 | 分类于 Concurrent | 阅读次数: 字数统计: 292 字 | 阅读时长 ≈ 1 分钟 文章基于jdk1.7,通过学习《Java并发编程的艺术》,对Java原子操作的理解 原子更新引用类型包含3个类: AtomicReference:原子更新引用类型 AtomicReferenceFieldUpdater:原子更新引用类型里的字段 AtomicMarkableReference: ... 阅读全文 »
判断线程池中的线程是否全部执行完毕 发表于 2018-10-07 | 分类于 Concurrent | 阅读次数: 字数统计: 1,012 字 | 阅读时长 ≈ 5 分钟 在使用多线程的时候有时候我们会使用 java.util.concurrent.Executors的线程池,当多个线程异步执行的时候,我们往往不好判断是否线程池中所有的子线程都已经执行完毕,但有时候这种判断却很有用,例如我有个方法的功能是往一个文件异步地写入内容,我需要在所有的子线程写入完毕后在文件末 ... 阅读全文 »
原子更新数组 发表于 2018-10-07 | 分类于 Concurrent | 阅读次数: 字数统计: 598 字 | 阅读时长 ≈ 3 分钟 文章基于jdk1.7,通过学习《Java并发编程的艺术》,对Java原子操作的理解 通过原子的方式更新数组中的某个元素,Atomic包提供了以下3个类。 AtomicIntegerArray:原子更新整型数组里的元素。 AtomicLongArray :原子更新长整型数组里的元素。 Atomi ... 阅读全文 »
原子更新基本类型类 发表于 2018-10-06 | 分类于 Concurrent | 阅读次数: 字数统计: 1,174 字 | 阅读时长 ≈ 5 分钟 文章基于jdk1.7,通过学习《Java并发编程的艺术》,对Java原子操作的理解 当程序更新一个变量时,如果多线程同时更新这个变量。可能得到期望之外的值,比如变量 i=1,A线程更新 i+1,B线程也更新 i+1,最后得到的可能不是3,而是2。这是因为线程A和B在更新变量 i 的时候 拿到的 ... 阅读全文 »
使用融云发送消息 发表于 2018-10-01 | 分类于 Social | 阅读次数: 字数统计: 2,334 字 | 阅读时长 ≈ 12 分钟 社交项目中难免会遇到发送消息,客户端发送消息暂时不作介绍,这里讲述的是Java服务端发送消息,其中,消息类型包括:单聊消息、系统消息和自定义消息。 当然,这些内容在融云官网上也有,这里只做记录以及遇到的坑。其中,这里涉及的API主要有:获取融云tokem、注册用户、更新用户、发送单聊消息、给多人发送 ... 阅读全文 »
cannal基本使用 发表于 2018-09-27 | 分类于 canal | 阅读次数: 字数统计: 2,173 字 | 阅读时长 ≈ 12 分钟 前提安装完MySQL(我安装的是5.7),安装JDK(canal依赖) 开启MySQL的binlog开启binlog,并且将binlog的格式改为Row,这样就可以获取到CURD的二进制内容。配置/etc/my.cnf,在[mysqld]增加 123log-bin=mysql-bin #添加这一行就 ... 阅读全文 »
App视频邀请 发表于 2018-09-23 | 分类于 Social | 阅读次数: 字数统计: 1,980 字 | 阅读时长 ≈ 8 分钟 需求项目中有这么一个需求: 当用户余额不足,1分钟后,机器人进行视频邀请,当用户点击接听时,则提示用户充值;当用户点击拒绝,3分钟后,再对该用户使用机器人进行视频邀请,当用户点击接听时,则提示用户充值;当用户点击拒绝,10分钟后,再次对该用户使用机器人进行视频邀请,当用户点击接听时,则提示用户充值; ... 阅读全文 »
Java并发 -- JMM 发表于 2018-07-29 | 分类于 Concurrent | 阅读次数: 字数统计: 937 字 | 阅读时长 ≈ 3 分钟 Java内存模型的基础 文章基于jdk1.7,通过学习《Java并发编程的艺术》,对Java内存模型的理解 并发编程模型的两个关键问题 线程之间如何通信 线程之间如何同步 上面所说的线程指的是并发执行的活动实体。 线程之间的通信机制有两种:共享内存和消息传递 在共享内存的并发模型中,线程之间 ... 阅读全文 »