昊学

  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

ThreadLocal小结

发表于 2018-12-21

ThreadLocal 小结

在使用ThreadLocal过程中,产生了这样几个疑惑。

  • ThreadLocal实例对象和存储值是什么关系?
  • ThreadLocalMap中的Entry为什么是弱引用?
阅读全文 »

netty 学习笔记(一)

发表于 2018-11-05 | 更新于 2018-11-06 | 分类于 netty学习笔记

NETTY-学习笔记(一)

netty is an advanced framework for creating high-performance networking applications
— netty in action

netty初见

挑战:如何让自己编写的应用程序支持150000以上的并发?

传统的java代码如何实现网络访问

以下是一段传统java网络处理代码

阅读全文 »

Java 多线程学习笔记 后记

发表于 2018-11-03 | 更新于 2018-11-06 | 分类于 java多线程学习笔记

这几篇学习笔记,基本是我这几个月阅读 JAVA高并发编程详解总结摘要与读后感。
写下这几篇笔记,我复习了一遍其内容,并敲了敲代码,做了简单实现。
将几百页内容压缩到几篇笔记中,实在是一件有趣的事情。
前三篇内容,基本对应前三部分的内容,而第四篇,则是第四部分设计模式内容。这一部分,主要介绍和多线程相关的设计模式。数一数竟有15个,占了约有一半的内容,基本都是工作学习中见过的。

Java 多线程学习笔记(三)进阶

发表于 2018-11-03 | 更新于 2020-01-09 | 分类于 java多线程学习笔记

Java 多线程学习笔记(三)进阶

自定义显示锁BooleanLock

synchronized虽然提供线程同步等功能,但他过于原始,有两个明显缺陷:第一,无法控制阻塞时长,第二,阻塞不可被中断。

定义锁接口

1
2
3
4
5
6
public interface Lock {
void lock() throws InterruptedException;
void lock(long mills) throws InterruptedException, TimeoutException;
void unlock();
List<Thread> getBlockedThreads();
}

阅读全文 »

双十一购书清单

发表于 2018-11-02 | 分类于 杂记

又到一年一度的双十一了,趁着京东书籍促销,剁了一手。
这次购买的书籍如下:

  • Java高并发编程详解:多线程与架构设计
  • Netty权威指南
  • Effective java
  • go程序设计语言
  • Spring实战
  • go语言学习笔记
  • GO Web编程
  • 架构整洁之道

其中Java高并发编程这本,之前已经基本阅读过一遍电子版,此次算是支持作者,购买一本。
读后感觉非常棒,作者并未介绍过多实战方面的知识,而是以背后原理为主,深入浅出介绍多线程相关技术,解答了之前不少感到疑惑的知识点。

Netty权威指南则是我下一阶段打算认真研读的。作为java最出名的第三方io库,早已久闻netty大名,工作中也会遇到netty相关的事情。
此前读过netty in action,现在想继续深入学习下java网络多线程相关知识,故而买了一本。

Java 多线程学习笔记(二)基础

发表于 2018-11-01 | 更新于 2018-11-06 | 分类于 java多线程学习笔记

Java 多线程学习笔记(二)基础

synchronized 关键字

synchronized关键字可修饰方法或代码块,被修饰的部分,对于多线程来说将按照同步方式来执行。

  • synchronized 提供一种锁机制,能确保共享变量互斥访问,从而防止数据不一致问题。
  • synchronized 关键字包括monitor enter 和 monitor exit 两个jvm指令,保证任何线程执行到monitor enter之前都必须从主存中获取数据,而不是从缓存中,monitor exit之后,共享变量被更新后的值必须刷入到主内存中。
  • synchronized 严格遵守java happen-before 原则,一个monitor exit之前必须要有一个monitor exit
阅读全文 »

java 多线程学习笔记(一)入门

发表于 2018-11-01 | 更新于 2018-11-06 | 分类于 java多线程学习笔记

Java 多线程学习笔记(一)入门

Tread 与 Runnable 的区别

众所周知,实现线程有两种模式,其一继承Thread类,覆盖run方法,其二,实现Runnable接口。
前一种体现的模板类设计模式,后者体现的是策略模式,二者并无优劣高低之分,各有各的区别,

阅读全文 »

First look on protobuf with java

发表于 2018-10-31 | 更新于 2018-11-06

protobuf 性质速览

proto2

protobuf语法分为proto2和proto3,此处只介绍proto2的语法。

Message

protobuf数据以message为单元

1
2
3
4
5
message SearchRequest {
required string query = 1;
optional int32 page_number = 2;
optional int32 result_per_page = 3;
}

阅读全文 »
Cheng Hao

Cheng Hao

8 日志
3 分类
6 标签
GitHub E-Mail
© 2020 Cheng Hao
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Mist v6.5.0