自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 互联网技术18——socket编程之NIO

NIO同步非阻塞NIO是同步非阻塞的,在传统的TCP点对点直接连接的基础上做了一层封装,并不是Client与Server直接建立连接,而是Client先到Server端进行管道注册。在Server端创建一个Selector多路复用器,启动一个线程轮询注册到Selector上的所有Channerl的状态,根据通道的状态,执行相关操作。通道的状态包括: Connect连接状态、Accept阻塞状态...

2018-08-31 01:55:04 273

原创 http学习

将从几个方面去写:1.请求部分2.响应部分3.三次握手4.四次挥手5.状态码6.webSocket7.rpc

2018-08-31 00:50:07 82

原创 互联网技术17——socket编程之BIO

TCP直连接Socket与ServerSocket,先看代码服务端:Server.javapackage com.socketBio;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/** * Created by BaiTianShi on 2018/8/29....

2018-08-30 22:47:17 217

原创 互联网技术16——Disruptor

学之前在看这篇博客之前,我想说的是,如果是准备入门Disruptor,建议掌握一些重要方法和特性,至于要实现哪种功能,建议掌握大致流程,以后的使用过程中慢慢去消化,如果学习任务比较多,又期望通过自己的入门式学习而全部掌握Disruptor并熟练运用时间成本有些划不来的。所以我准备有时间做一个简单归纳,这篇博客介绍了几种使用案例,同时推荐一个Disruptor的学习网站http://ifev...

2018-08-27 01:30:19 953

原创 互联网技术15——ReentrantLock之重入锁、读写锁、非公平锁

synchronized关键字可以实现线程之间的同步互斥给工作,Lock对象锁是一种完成同步互斥工作更优秀的机制,在1.6之后,对synchronized进行了优化,虽然效率上有所提升,但是在灵活度上仍然不如Lock对象。比如嗅探锁定,夺路分支等功能。重入锁:在需要同步的代码部分添加锁定,但是最后一定不要忘记了释放锁,否则会造成锁无法释放,其他线程不能执行。package com.c...

2018-08-24 00:51:45 522

原创 互联网技术14——Semaphore信号量

SemaPhore信号量非常适合高并发访问,在系统上线之前,要对系统访问量记性评估,当然这个肯定不是随便写的,是经过以往的经验、数据、历年的访问量,已经推广力度进行一个合理的评估,当然评估标准不能太大也不能太小。太大的话则投入的资源得不到实际的效果,会浪费资源。当评估值调小则某个时间点一个高峰值的访问量上回直接压垮系统。解决高并发关键在业务,要将业务进行划分,划分为不同的层次和模块,针对某个具...

2018-08-23 20:52:50 348

原创 互联网技术13——CountDownLatch和CyclicBarrier

CountDownLatch:countdownLatch经常用于监听某些初始化操作,等待初始化执行完毕后,再通知主线程继续工作。同步辅助类,在完成一组正在执行的操作之前,它允许一个或多个线程一直等待。实例化CountDownLatch时,需要制定唤醒次数。当线程执行了CountDownLatch.await()时,则当前线程处于阻塞的等待状态。其他线程根据执行逻辑,执行唤醒方法...

2018-08-22 16:39:50 353

原创 互联网技术12——Executor框架

Executor创建线程池为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的控制线程。他们都在java.util.concurrent包中,是JDK并发包的核心。其中有一个比较重要的类;excutors,它扮演者线程工厂的角色,我们可以通过Executor可以创建特定功能的线程池。Exexutor创建线程池的方法:1. newFixedThreadPoo...

2018-08-22 03:19:12 154

原创 互联网技术11——future模式和Master-Worker模式

 并行设计模式属于设计优化的一部分,它是对一些常见的多线程结构的总结和抽象,与串行相比,并行程序的结构通常更为复杂,因此合理的使用并行模式在多线程开发中更具有意义,这里主要介绍future和Master-Worker两种模式。future模式future有点像商品订单。比如在网购时,当看中某一件商品时,就可以提家订单,当订单处理完成后我们在家等着送货上门即可。或者更形象的说是ajax请求的...

2018-08-21 01:48:20 718

原创 互联网技术10——queue队列

  在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue为代表的阻塞队列。两种都是继承了Queue接口。层次图(hierarchy):(idea中 层次图快捷键:选中后(或在类中空白处)) ctrl+h )1.concurrentLinkedQueue:  concurrentLinkedQueu...

2018-08-18 05:06:28 454

原创 互联网技术09——并发类容器

鉴于同步类容器的并效率和非同步类容器在处理并发问题需要手动加锁的繁琐操作,专门设计了并发类容器 使用coucurrentHashMap来代替传统的hashMap,以及使用CopyOnWriteArrayList代替Vector,并发copyOnWriteArraySet,以及并发的queue,如ConcurrentLinkQuue和LinkedBlockQueue。前者是高性能的队列,后者是阻塞...

2018-08-17 02:38:42 165

原创 互联网技术08——同步类容器

集合容器框架关系简介:在Java集合容器框架中,主要有四大类:list、set、queue、map。期中list、set、queue都是继承了collection接口。Map本身是一个接口。 注意collection和map是一个顶层接口,而list、set、queue继承collection,分别带边数组、集合、队列这三大类容器。ArrayList和linkedList实现了list接口,...

2018-08-17 02:09:29 113

原创 互联网技术07——单例和多线程

单例模式实现方式:懒汉模式 饿汉模式 静态内部类 双重检查第一种,懒汉模式,顾名思义,就是什么时候需要,我什么时候创建,示例代码:package com.company;/** * Created by BaiTianShi on 2018/8/16. */public class SingleModal { private static SingleModal...

2018-08-16 02:54:36 105

原创 互联网技术06——使用wait/notify模拟Quene

BlockingQuene,Block即阻塞队列,在这里我们试着实现LinkBlockQuene的put和take两个方法put:把数据放入队列中,如果队列没空间,则一直阻塞,直到quene中有空间剩余,然后将数据放入队列中。take:从quene中取第一个(FIFO)元素,如果队列中没有元素,则阻塞,直到队列有数据进来,然后继续执行取操作。代码如下package com.com...

2018-08-16 01:26:01 123

原创 互联网技术05——多线程通信wait/notify以及countDownLatch

场景带入多线程之间处理数据,但业务复杂的时候,需要各个线程间实现通信,例如线程A和B同时处理数据,线程B的后半部分(假设是第50行代码,记做B50),必须等待线程A执行某方法(假设是第80行代码,记做A80)对数据进行初加工后B再执行。A、B同时启动,当A尚未执行完A80时,B线程已经运行到了B50,这时就需要B线程在B50处等待A80执行完毕,A80执行完毕后再通知B线程继续执行。这就涉及到...

2018-08-15 02:44:15 235

原创 互联网技术04——volatile关键字

思考:1.当多个线程同时访问同一个变量时,为了避免线程问题,我们可以给其加上synchronized关键字。但是每个线程都需要等待,这就造成并发数的太低的问题。看下面代码:package com.company;/** * Created by BaiTianShi on 2018/8/14. */public class VolatileTest extends Thre...

2018-08-14 01:12:15 149

原创 互联网技术03——重入锁

重入锁实现细节在学习重入锁之前,我们先来了解一下可重入锁ReenTrantLock的实现细节。分两种:1.公平锁模型和非公平锁模型公平锁:把锁比作只有一个入口的井,获取锁的过程比作打水权。初始化时,state=0, 村民A获得打水权,并将state置为state+1(变为1)。此时村民B来打水,但是只有一个井口,只能生成节点进行等待。这时村民A的家人来打水,可直接获得打水权,并将state...

2018-08-14 00:27:35 119

原创 互联网技术02——脏读

脏读:当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没提交到数据库中,这时另一个事务也访问这个数据,然后使用了这个数据。对于多线程的同步和异步方法,如果考虑不周,就有可能发生脏读的错误。例子:package com.company;/** * Created by BaiTianShi on 2018/8/13. * 脏读 */public class D...

2018-08-13 02:30:00 551

原创 互联网技术01——线程基础

线程安全的概念:当多个线程访问某一个类(对象或方法)时,这个类始终能表现出正确的行为synchronized :可以加在任意对象及方法上,加上synchronized的这段代码称为“互斥区”或“临界去” 实例  1.  多个线程一个锁:package com.company;/** * Created by BaiTianShi on 2018/8/13. */...

2018-08-13 00:46:22 597 2

原创 Hiernate 保存报类信息冲突的错

解决办法:session.evict(entity)

2018-08-13 00:33:21 271

原创 Idea提交代码时提示无权限 原

 修改了git配置后,提交代码显示无权限设置idea忘记密码,如图设置git名称和邮箱,可查看一下gitee或github上使用的是哪个邮箱查看 $ git config user.name $ git config user.email修改 $ git config --global user.name "username"`$ git config --global us...

2018-08-13 00:30:56 2885

原创 Markdown教程

什么是MarkdownMarkdown是一种轻量级序言,设计目的就是方便写作时比纯文本更具有可读性,且不需要鼠标来修改格式,用标签的标注,就可以自动转换成想要的格式Markdown的好处比Html简单 能实现基本的排版功能标题可以添加六级标题,格式为: “ # 标题 ”,“ # ”个数代表标题等级 效果:标题2水平分区线格式:“ --- ”或者 “ __ ” ...

2018-08-13 00:27:41 157

原创 Queue

在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。如下图所示。ConcurrentLinkedQueue:是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQue...

2018-08-02 01:35:38 183

翻译 多线程中的Copy-On-Write

Copy-On-Write 容器 两种 CopyOnWriteArrayList 和CopyOnWriteArraySet 写时复制的容器 向一个容器添加元素时先将此容器复制,然后向复制后的容器添加元素,这样原容器不需要加任何锁,可以实现同步读操作,然后添加完元素后将引用指向新的copy触的容器。也就是所说的读写分离机制 解读:当线程一想要对CopyOnWRite容器进行写操作时,CopyOnW...

2018-08-02 01:01:09 385

原创 concurrentHashMap

ConcurrentHashMap由一个Segment和多个hashEntry组成。Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,Segment数组中每一个元素就是一把锁,每一个Segment元素存储的是HashEntry数组+链表,这个和HashMap的数据存储结构一样。 默认ConcurrentHashMap长度是16。像一些计数类成员变量声明称...

2018-08-01 23:36:59 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除