自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (7)
  • 收藏
  • 关注

原创 Netty 的线程模型

要想开发一个高性能的TCP服务器,熟悉所使用框架的线程模型非常重要。Netty本身都是高性能的网络框架,如果再搭配上高效率的代码,才能实现一个高大上的服务器。但是如果不了解它们的线程模型,就很难写出高性能的代码。框架本身效率再高,程序写的太差,那么服务器整体的性能也不会太高。就像一个电脑,CPU再好,内存小硬盘慢散热差,整体的性能也不会太高。玩过Android开发的同学会知道,在Android应用中有一个非常重要线程:UI线程(即主线程)。UI线程是负责一个Android的界面显示以及和用户交互。Act

2021-02-18 11:20:59 161

原创 Java中如何唤醒“指定的“线程

熟悉线程操作的小伙伴应该知道,Java中线程的挂起和唤醒一般用synchronized + wait + notify完成。比如:synchronized(o) { o.wait(); //wait状态}在其他线程中o.notify(),就可以唤醒在o上wait的线程。可是如果o上有多个线程wait,是没有办法唤醒“指定”的某个线程的。不过,Java6之后,转机来了,Java6引入了LockSupport这个类,好了,废话不多说,我们直接上代码:public class Test

2021-02-16 22:41:15 2498

原创 利用 Redis 实现代码零侵入、高性能和安全的分布锁

针对高并发程序的设计而言,分布式锁是不可或缺的功能,特别是用户大量的操作、流量涌进来以后,看似运行稳定的程序却因为没有分布锁而导致物品超卖或一人多个订单的情况发生,而有的同学在系统中可能也使用了分布锁,但是每隔一段时间就会导致死锁或者出现根本拦不住的情况,视分布式锁如无物,关键是问题还偶然性的发生,花了大量的时间看日志、测试,但都一无所获,本场 Chat 将解密分布锁以上发生问题的原因和解决办法,...

2020-03-09 13:54:22 125

原创 设计模式思维拓展与实战:策略模式

“我明明学了那么多的设计模式,怎么转头就忘?”;“设计模式那么多,我该用哪一种?”;“设计模式太难了,我还是继续堆积我的代码吧,虽然扩展起来比较麻烦,复制、粘贴嘛”。如果您有类似的困惑,那么这篇文章将很适合您阅读,学会了概念不代表真正的掌握了它,只有实战才能真正的加深我们对设计模式的理解,从而让我们的程序更加的健壮、优美和富有生命力,远离复制、粘贴吧,因为您是一位优秀的软件开发人员,本场 Chat...

2020-03-08 22:54:10 131

转载 redisson分布式锁的实现

最近由于工作很忙,很长时间没有更新博客了,今天为大家带来一篇有关Redisson实现分布式锁的文章,好了,不多说了,直接进入主题。1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。[java] view

2017-11-13 18:25:12 849

原创 ThreadLocal的用法以及为什么要使用它?

首先我们来说一下ThreadLocal的含义, Thread线程,Local本地,线程本地到底是什么意思呢?我们来看下面这个小程序。public class ThreadLocal1 { volatile static Person p = new Person(); public static void main(String[] args) { new Thread(()->{ try { TimeUnit.SECONDS.

2021-02-21 08:18:22 633

原创 java并发的选择

1、控制并发线程数的用Semaphore2、线程之间的数据交换用Exchanger3、等待多线程完成的CountDownLatch4、同步屏障CyclicBarrier

2017-11-10 16:02:06 135

原创 java并发信号量Semaphore

package com.blocking;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class ArrayCopy {public static

2017-11-10 15:18:59 160

原创 linux 安装单机版zookeeper

linux环境单机安装zookeeper步骤

2017-02-27 12:34:56 501

转载 linux redHat 安装jdk

用root登录一、系统环境操作系统:  RedHat Enterprise Linux  server 5.4(rhel 5.4)二、安装JDK1.      从www.oracle.com下载最新的Java SE Development Kit 7  jdk-7-linux-i586.rpm2.      将JDK安装文件jdk-7-linux-i58

2017-02-21 17:25:53 828

原创 jquery设置easyui校验

//JQuery EasyUI 动态改变表单项的验证规则$(document).ready(function(){ $('#FILE_QUALITY').combobox({ onChange:function(newValue,oldValue){ if(newValue == 2){ $('#FRONT_FOR_

2016-11-21 16:40:00 582

转载 java并发 分布式锁

Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。 用SETNX实现分布式锁 利用SETNX非常简单地实现分布式锁。例如:某客户端要获得一个名字foo的锁,客户端使用下面的命令进行获取: SETNX lock.foo  如返

2016-10-12 15:07:48 462

原创 netty

当服务器端的read方法执行时,有可能是编码设置有问题。

2016-08-07 22:22:35 459 3

Jsp数值n次方的计算

复习一下java的递归计算,很有用的,给那些初学java的人一些想法

2013-01-31

基于Netty的聊天程序

从最简单的Socked编程,到目前为止已经有了开源的框架,那就是Netty,它Jobss开发的一个网络异步应用框架,能高快捷的实现网络客户端和服务器端的优秀框架,而本实例就是基于这个框架实现的聊天程序,希望对你有用

2013-01-30

Ibatis高级使用讲解

Ibatis动态查询配置文件的讲解,来下载吧,好久才弄的哦!

2012-10-30

基于struts2的文件上传

简单实用的struts2文件上传ppt参考,包括文件配置和使用方法

2012-03-20

hibernate jar包参考图片

如果您还对hibernate jar包有疑问请参看一下

2012-03-14

css教程手册

最全面的css查询手册,如果您是web开发人员必须要了解的就是css与html,该文档介绍的很详细

2012-03-14

hibernate初级教程.

很全面的哦。欢迎大家下载啊, 呵呵,里面介绍了hibernate所有知识,很快就会入门的

2011-11-13

空空如也

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

TA关注的人

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