自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习印记 Learning imprint

记录点滴 Record bit by bit

  • 博客(19)
  • 资源 (7)
  • 收藏
  • 关注

原创 java多线程——ThreadLocal 原理解析

ThreadLocal介绍ThreadLocal可以创建只能由同一线程读取和写入的变量。因此,即使两个线程正在执行相同的代码,并且代码具有对 ThreadLocal变量的引用,那么这两个线程不能看到对方的ThreadLocal变量。实际上ThreadLocal的值是放入了当前线程的一个ThreadLocalMap实例中,所以只能在本线程中访问,其他线程无法访问。可以创建一个指定泛型类型的Thread

2017-03-18 20:30:59 976

原创 Java多线程——volatile

volatilevolatile修饰的变量在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。Java中的volatile关键字用作Java编译器和Thread的指示符,它们不会缓存此变量的值并始终从主存中读取它。Java在Java内存模型(JMM)中引入了一些变化,它保证了从一个线程到另一个线程的变化的可见性,也就是“happen

2017-03-18 17:52:04 874

原创 Java多线程——生产者和消费者模式

生产者消费者模式生产者和消费者模式是一种并发设计模式,生产者消费者模式解决的是两者速率不一致而产生的阻抗不匹配,该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直

2017-03-18 01:42:19 2539

原创 Java多线程——Callable、Future和FutureTask

通过Thread或Runnable创建的线程,都需要重写run方法,而run方法的返回是void的,所以使用这种方式无法获取线程执行结果。但java提供了其他类和方法来获取线程执行结果,主要的类有Callable、Future和FutureTask。CallableCallable是个泛型接口 Callable ,该接口中只有个call()方法,并且返回值也为 V,常和ExecutorService

2017-03-17 01:53:51 855

原创 Java多线程——线程

多线程编程的利弊其实我们的程序在运行的时候,CPU很多时候都是空闲的状态,因为程序不光有CPU调度,而大多数耗时的操作都在于IO上,因此要合理利用CPU的空闲时间,来提高程序的性能。多线程也会带来一些负面的东西,比如如何的解决并发带来的线程安全问题。这个问题很不好解决,一般解决线程安全常会用到同步,同步或者过多线程间上下文的切换又会带来性能的下降。进程和线程的关系进程是资源分配的基本单位,是一个程序

2017-03-16 21:56:44 752

原创 Java——进程

进程进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位, 每个进程都有其自己的内存空间。Java中创建进程其实是创建了操作系统的一个进程,Java虚拟机本身就是一个进程,该进程创建了多个线程能够同时运行的条件。进程特征动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的;并发性:任何进程都可以同其他进程一起并发执行;独立性:进程是一个能独立运行的基本单

2017-03-15 20:47:45 1045

原创 Java——transient and 序列化

序列化序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 在网络传输过程中,可以是字节或是XML,json等格式。而字节的,XML,json编码格式可以还原完全相等的对象。这个相反的过程又称为反序列化。transientjava 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transie

2017-03-14 23:33:29 741

原创 Java多线程——Semaphore

SemaphoreSemaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计

2017-03-14 02:32:10 806

原创 线程间协作——wait、notify、notifyAll

在 Java 中,可以通过配合调用 Object 对象的 wait() 方法和 notify()方法或 notifyAll() 方法来实现线程间的通信。在线程中调用 wait() 方法,将阻塞等待其他线程的通知(其他线程调用 notify() 方法或 notifyAll() 方法),在线程中调用 notify() 方法或 notifyAll() 方法,将通知其他线程从 wait() 方法处返回。wa

2017-03-14 00:58:56 843

原创 Java多线程——线程池

线程池线程池负责管理工作线程,包含一个等待执行的任务队列。线程池的任务队列是一个Runnable集合,工作线程负责从任务队列中取出并执行Runnable对象。Executor 框架便是 Java 5 中引入的,其内部使用了线程池机制,Executor 框架包括:线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callab

2017-03-12 22:54:27 1250

原创 设计模式——责任链模式

模式介绍责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。模式的优缺点优点1.因为客户端的请求不知道会被哪个对象处理,所以系统的更改可以在不影响客户端的情况下动态的重新

2017-03-12 13:56:24 706

原创 Spring Scheduler定时任务 + Quartz

定时任务几种实现方式Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务,没怎么用过就不说了。Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。Quartz是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,可以方便的分布式部署、便捷的监控和

2017-03-11 16:45:25 6506

原创 Base64简介

Base64编码介绍Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。比如三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。完整的base64定义可见RFC 1421和RFC 2045。编码后的数据比原始数据略长,为原来的4/3。所以当原有数据不是3字节的倍数时,会将二进制数据

2017-03-11 13:34:34 875

原创 sql重复插入问题

问题在项目中,由于别人并发的调用接口,导致插入了重复数据解决方案1.因为使用多台机器部署,可以使用分布式锁用一台机器处理,对处理的方法加锁或同步关键字,但性能会有很大影响,分布式的优势也没了 2.在MySQL的业务表中,根据业务建立唯一索引,防止数据重复具体操作建立唯一索引: ALTER TABLE table_name ADD UNIQUE index_name (column_list)程序

2017-03-10 15:32:15 4036

原创 线程执行顺序——CountDownLatch、CyclicBarrier 、join()、线程池

本文主要围绕一个问题展开:线程执行顺序,比如某个线程在其他线程并发执行完毕后最后执行。join介绍join()是Thread类的一个方法,join()方法的作用是等待这个线程结束。t.join()方法阻塞调用此方法的线程(calling thread),直到线程t完成,此线程再继续;通常用于在main()主线程内,等待其它线程完成再结束main()主线程。join实现Join方法实现是通过wait(

2017-03-10 00:02:22 3003

原创 微软办公软件Word,Excel,PPT一些常用操作

将CSV文件中科学计数法在excel中正常显示建议直接看这篇文章:http://jingyan.baidu.com/article/ae97a646d29ed6bbfd461daa.html这里简单记录下:新建一个excel文件-》打开后选择“数据”-》“从文本”-》一直按“下一步”-》当需要选择分隔符号时选择“逗号”-》列数据格式(可以用鼠标选择那一列并指定列格式,比如含有科学计数法的列将其类型指

2017-03-09 20:03:38 1145

原创 The innodb_system data file 'ibdata1' must be writable

之前MySQL还好好的,今天突然无法启动了ps -ef|grep mysql看到有启动的进程,不过启动失败了,然后 根据--log-error=/usr/local/mysql/data/mysqld.local.err到错误日志中看了提示的错误: The innodb_system data file 'ibdata1' must be writable应该是文件的操作权限不够,可以修改下该

2017-03-08 00:00:07 30558 2

原创 Your password has expired. To log in you must change it using a client that supports expired passwor

密码过期,需要重设密码,处理过程如下。mysql> use mysqlERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.mysql> set password = password('123456789');Query OK, 0

2017-03-07 23:55:14 1224

原创 Invalid default value for 'create_date' timestamp field

创建表的语句中有这么一句`create_date` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',之后就报了这个错误。That is because of server SQL Mode - NO_ZERO_DATE. In strict mode, don’t allow ‘0000-00-00’ as a valid date. TIMES

2017-03-07 23:51:59 4339

程序员面试宝典(第4版)

程序员面试的一本金典书籍,相信找工作的人都知道,这是迷你版的,不全包涵。

2013-11-06

PHP微信公众平台接口类及演示

PHP微信公众平台接口类及演示,其中包含消息回复,自定义菜单,订阅消息推送等功能代码

2013-09-28

zookeeper ppt教程

zookeeper ppt教程,让初学者对zookeeper有更好的了解

2013-09-28

微信公众平台注册与认证

详细描述了微信公众平台的注册与认证流程,及在开发模式下能实现的功能

2013-09-28

宿舍管理系统

宿舍管理系统+论文 c++编写,可正常运行,采用access作为数据库,希望对你有帮助。

2013-02-21

各种算法图解

数据结构书里面的各种算法的详细图解

2013-02-21

空空如也

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

TA关注的人

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