自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

个人公众号: 码小菜

这里会同步更新我个人公众号的文章

  • 博客(37)
  • 资源 (2)
  • 收藏
  • 关注

原创 Go 泛型 第一篇

Go 泛型马上在2020年 2月发布,先学习起来

2021-12-02 21:58:08 571

原创 算法导论资料

讲义 https://web.stanford.edu/class/cs97si/

2018-07-03 21:32:23 278

转载 基础对编程的重要性

基础对编程的重要性学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心。最近在网上也看了许多前辈们的经验建议,再结合自己的学习经历在这里谈谈基础的重要性,希望帮助大家少走些弯路。什么是基础呢?就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理 等课程学好,对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序...

2018-07-03 20:42:41 303

原创 JDBC简单封装以及策略模式的利用

结果集封装为Map @Test public void warp2Map() throws SQLException { Map<String, Object> map = warp2Map("select * from user_test where id = 2011"); System.out.println(map); ...

2018-06-02 23:30:42 274

原创 编写一个简单的数据库连接池

为什么要使用数据库连接池使用jdbc最大的开销之一就是创建数据库,当我们频繁的创建数据库时,势必影响应用的效率,或者在数据库关闭出现问题时,我们不能马上释放,时间长一些,整个数据库的 资源将会被我们的应用耗尽,这是一个很危险的讯息,怎样将数据库连接创建带来的开销降到最低呢,就是我们实现将一系列创建完毕的连接存放起来,等到使用的时候再来使用,这就是数据库连接池解决的最大问题和存在的最大必要。...

2018-06-02 17:01:03 466

原创 C++模板的编译与连接及inline 和 static 的说明

C++模板的编译与连接及inline 和 static 的说明C++的编译是以.cpp文件为单位进行。编译之前存在一个预处理的过程:文件包含,条件编译和宏展开。文件包含是将include 的头文件中的内容复制到.cpp文件中。一般接口与实现的分离设计,头文件中通常都是函数和类的声明。在编译的过程中,如果A.cpp文件中有函数 f() 的调用,但是不存在 f() 函数的定义;那么在编译f()

2018-01-20 11:22:50 357

原创 用JavaScript面向对象画一个三角形

html<html><body><div> <canvas height="600" width="800" id="canvas"> </canvas></div><script type="text/javascript" src="test.js"></script></body></html>jsfunction Point(x,y){ this.x

2017-11-24 19:39:39 2376

原创 Python函数参数类型*、**的区别

Python函数参数类型、*的区别

2017-11-22 19:10:20 566

原创 什么是消息队列?

到底什么是消息队列?Java中如何实现消息队列? 消息队列有无数开源实现,一般没必要自己实现。zmq也好rabbitmq也好甚至redis也好,找一个合适的装上用就行 就好像rdbms/nosql一样 技术都是解决问题的,消息队列解决的是将突发大量请求转换为后端能承受的队列请求,比如你的服务器一秒能处理100个订单,但秒杀活动1秒进来1000个订单,持续10秒,在后端能力无法增加的情况

2017-11-21 18:47:36 523

原创 多线程编程中Future模式

Future模式核心思想Future模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑(根据《Java程序性能优化》)。Future模式有点类似于商品订单。在网上购物时,提交订单后,在收货的这段时间里无需一直在家里等候,可以先干别的事情。类推到程序设计中时,当提交请求时,期望得到答复时,如果这个答复可能很慢。传统的时一直等待到这个答复收到时再去做别的事情,但如

2017-11-20 18:46:15 285

原创 多线程编程中的Master-Worker模式

Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务;Worker进程,负责处理子任务。当Worker进程将子任务处理完成后,结果返回给Master进程,由Master进程做归纳汇总,最后得到最终的结果。什么是Master-Worker模式Worker:用于实际处理一个任务;Master:任务的分配和最终结果的合成;

2017-11-20 18:44:53 563

原创 多消费者,多生产者模式Java实现

一种实现方式(自己控制线程池)package com.java.test;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingDeque;public class ProducerConsumerDemo { public static void main(String[]

2017-11-20 16:30:39 396

原创 Redis和请求队列解决高并发

背景在移动互联网高速发展的时代,各种电商平台的抢购业务变得越来越火爆,抢购业务所带来的高并发问题值得我们去探索,主要涉及的方面包括处理和响应速度、数据的一致性等。抢购开放的一瞬间,可能有成千上万的下订单请求发送到服务器去处理,如果只是简单的请求处理响应方式,不做任何处理,导致的结果很可能是很多客户很长时间得不到响应,根本不知道自己是否下订单成功,或者下订单的数量已经超过了商品的数量,这就导致了超发的

2017-11-17 14:13:55 28397 10

转载 MapReducer Counter计数器的使用,Combiner ,Partitioner,Sort,Group的使用

Counter计数器的使用

2017-11-15 18:14:44 371

原创 使用Hadoop分析网站日志

某网站使用Apache服务器搭建公司的网站,Apache每小时产生一个日志,每天产生24个gz的包,gz的包总大小为200M

2017-11-15 09:56:55 629

原创 日志分析方法概述

日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核、各种应用服务器等等。日志的内容、规模和用途也各不相同,很难一概而论。本文讨论的日志处理方法中的日志,仅指Web日志。其实并没有精确的定义,可能包括但不限于各种前端Web服务器——apache、 lighttpd、tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志。在Web日志中,每条日志通常代表着用户

2017-11-14 18:24:19 2677

原创 红黑树之 C语言的实现

红黑树(二)之 C语言的实现

2017-11-09 11:02:57 373

原创 AVL树C语言的实现

AVL树(一)之 图文解析 和 C语言的实现

2017-11-09 10:53:24 520

转载 从Android适配器的一种写法认识静态内部类

首先是一个Fragment的适配器类重点看静态内部类Holder就可以了,在这里其实是Builder模式的使用 import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAda

2017-11-07 19:03:48 512

原创 如何彻底理解反射

从JVM的角度理解什么是JVM,Java的虚拟机,java之所以能跨平台就是因为这个东西,你可以理解成一个进程,程序,只不过他的作用是用来跑你的代码的。上图是java的内存模型,我们关注的点,一个方法区,一个栈,一个堆,初学的时候老师不深入的话只告诉你java的内存分为堆和栈,易懂点吧!假如你写了一段代码:Object o=new Object(); 运行起来后首先JVM会启动,你的代码会编译成一个

2017-11-05 11:41:56 1263 2

原创 彻底搞清RPC模块设计与实现

RPC是分布式系统中不可缺少的一部分。之前接触过几种RPC模块,这里就总结一下常见RPC模块的设计思想和实现。最后我们来设计一个可以方便进行RPC调用的RPC模块。RPC模块设计需要考虑的问题RPC模块将网络通信的过程封装成了方法调用的过程。从使用者的角度来看,在调用端进行RPC调用,就像进行本地函数调用一样;而在背后,RPC模块会将先调用端的函数名称、参数等调用信息序列化,其中序列化的方式有很多种

2017-11-05 01:19:51 2161

原创 wamp+zendstudio12+xDebugger环境搭建

wamp+zendstudio12+xDebugger环境搭建

2017-10-28 21:02:07 333

转载 ARM软件访问硬件的核心理论

ARM软件访问硬件的核心理论(1) – CPU访问外设方法 ARM软件访问硬件的核心理论(2)—时钟信号 ARM软件访问硬件的核心理论(2)—时钟信号 ARM软件访问硬件的核心理论(3) —中断处理

2017-10-20 14:07:19 368

转载 内存(RAM或ROM)和FLASH存储的真正区别总结

1.什么是内存什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由

2017-10-19 18:39:20 647

原创 嵌入式的一些资料

嵌入式的一些资料[http://www.cnblogs.com/dwj411024/p/6068990.html]

2017-10-18 15:20:54 222

原创 Linux下执行脚本提示No such file or directory

1.现象描述: 在linux下编译sifteo sdk后,使用./sifteo-sdk-shell.sh的时候提示如下错误:: No such file or directory2.原因分析: 我的源码是在window下git clone下来的,所以考虑文件格式错误,在当前目录下明显有这个脚本,既然它提示不存在,肯定是因为linux环境没有读到该文件,因此考虑文件格式为dos3.解决方法:使用do

2017-10-17 17:39:34 965

原创 找到了淘宝大牛的技术博客

找到了淘宝大牛的技术博客花名:毕玄,姓名:林昊的博客 BlueDavy之技术Blog花名:放翁,姓名:岑文初 放翁(文初)的一亩三分地hadoop的文章 放翁hadoop的文章

2017-10-14 21:58:32 1008

转载 淘宝传奇工程师多隆的程序世界

多隆是淘宝的创始人之一,也是淘宝的第一个程序员,他奠定了诸多淘宝重大软件项目的基础。有人说他是淘宝的“扫地僧”,有人说他是“神”。在淘宝,他做到了既懂C/C++语言,又懂Java和内核;既可以深入技术底层,又能切入到高层业务领域,从前端到后端,知识既广又深。他就是核心系统部专家组的多隆。技术小二中流传一句话——“有困难,找多隆”。关于这点,我深有体会,有一次,我们组解决一个Apache服务器无故崩溃

2017-10-14 15:48:04 503

原创 关于多核与单核、并行与并发

并发:时间段内有很多的线程或进程在执行,但何时间点上都只有一个在执行,多个线程或进程争抢时间片轮流执行。并行:时间段和时间点上都有多个线程或进程在执行。单核cpu的话只能是并发,多核cpu才能做到并行执行。可能有这样的疑问:那多进程的并发有什么意义,不但没有提高cpu的利用效率,由于调度等开销,还降低了cpu的使用。这样的想法是片面的:1.进程并不是时时刻刻都占用cpu的,比如打印的时候,这是c

2017-10-14 15:44:10 1690

原创 java ForkJoin框架实现统计词频性能比较

用ForkJoin框架实现的统计词频和一般单线程统计的性能比较源码如下:Folder.javapackage ForkJoin;import java.io.File;import java.io.IOException;import java.util.LinkedList;import java.util.List;/** * Folder 是磁盘文件夹模型 * @author

2017-10-13 13:44:24 440

原创 Java 7中的Try-with-resources

Try-with-resources是java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源。利用Try-Catch-Finally管理资源(旧的代码风格),在java7以前,程序中使用的资源需要被明确地关闭,这个体验有点繁琐。下面的方法读取文件,然后用System.out打印:private static void printFile() throws IOE

2017-10-12 11:09:00 378

翻译 Fork and Join: Java也可以轻松地编写并发程序

如今,多核处理器在服务器,台式机及笔记本电脑上已经很普遍了,同时也被应用在更小的设备上,比如智能手机和平板电脑。这就开启了并发编程新的潜力,因为多个线程可以在多个内核上并发执行。在应用中要实现最大性能的一个重要技术手段是将密集的任务分隔成多个可以并行执行的块,以便可以最大化利用计算能力。处理并发(并行)程序,一向都是比较困难的,因为你必须处理线程同步和共享数据的问题。对于java平台在语言级别上对并

2017-10-11 12:30:31 227

原创 用Executors框架封装一个多任务处理器

用Executors框架封装一个多线程处理器的一个不错的例子。 本例子,通过读取一个文件,然后通过将打印任务放入任务队列,最后通过事先准备好的线程池将任务队列处理。// Consumer.javapublic interface Consumer { public boolean consume(Item j); public void finishConsumption

2017-10-10 17:40:58 433

原创 Lock锁机制和synchronize分别实现生产者消费者例程

存在问题 像前面实现消费者生产者例程那样,地址,直接操作线程这种方式是可以的,但对于并发编程,这样的代码很快变得容易出错,特别是好几个线程需要协作来完成一个更大的任务的时候。这种情况下,它们的控制流需要被协调。例如,一个线程的执行完成可能依赖于其他将要执行完成的线程。通常熟悉的例子就是生产者/消费者的例子,因为如果消费者队列是空的,那么生产者应该等待消费者,并且如果生产者队列是空的,那么消费者

2017-10-10 16:43:27 479

原创 c用信号量(Semaphore)实现消费者生产者同步

// 前面一篇博客的生产者-消费者的例子是基于链表的,其空间可以动态分配,现在基于固定大小的环形队列重写这个程序:#include <stdlib.h>#include <pthread.h>#include <stdio.h>#include <semaphore.h>#define NUM 5int queue[NUM];/** * semaphore变量的类型为sem_t,sem

2017-09-30 16:28:10 1436

原创 多线程死锁问题分析和解决[java]

问题重现public class Deadlock { static class Friend { private final String name; public Friend(String name) { this.name = name; } public String getName() {

2017-09-30 14:57:55 282

原创 线程同步生产者和消费者c和java不同实现

线程同步生产者和消费者c和java不同实现java 和 c 分别实现下消费者 生产者模式,更好的理解如何通过互斥锁和条件变量来保证资源同步javapackage com.toc;import java.util.LinkedList;import java.util.concurrent.TimeUnit;public class MutexCond { private static Lin

2017-09-30 12:37:32 315

jquery UI手册

很好很不错

2016-07-08

网路编程书籍非常好的

非常好的网路编程

2016-05-04

空空如也

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

TA关注的人

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