文章分类 -  java基础

java基础知识
摘要:转:http://ywx217.iteye.com/blog/1797463 MQTT是一款针对机对机(M2M)通信的,非常轻量级的的消息订阅、发布协议。它适用于一些系统资源和网络带宽非常有限的情况下的远程连接。MQTT-Client提供一个ASL 2.0证书下的MQTT接口。在网络连接失败时,它能 阅读全文
posted @ 2017-03-05 23:08 绝尘的神马
摘要:功能说明:一个日志接口,考虑到系统日志量提交有可能会阻塞,这里引入了线程池(生存者与消费者模式)来维护日志队列的发送。一个发送消息模块将消息发送到消息队列中,无需等待返回结果,发送模块继续执行其他任务。消息队列中的指令由线程池中的线程来处理。使用一个Queue来存放线程池溢出时的任务 转载于:htt 阅读全文
posted @ 2017-02-27 20:56 绝尘的神马
摘要:前记:jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue);中篇中主要聊聊与keepAliveTime这个参数相关的话题;下片中介绍一下一些比较少用的该类的API,及他的近亲:ScheduledThreadPoolExecutor。如果理解错误,请直接指出。查看JDK帮助文档, 阅读全文
posted @ 2013-03-28 17:17 绝尘的神马
摘要:Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活。本文通过一个网络服务器模型,来实践Java5的多线程编程,该模型中使用了Java5中的线程池,阻塞队列,可重入锁等,还实践了Callable, Future等接口,并使用了Java 5的另外一个新特性泛型。 简介 本文将实现一个网络服务器模型,一旦有客户端连接到该服务器,则启动一个新线程为该连接服务,服务内容为往客户端输送一些字符信息。一个典型的网络服务器模型如下: 1. 建立监听端口。 2. 发现有新连接,接受连接,启动线程,执行服务线程... 阅读全文
posted @ 2013-03-28 17:14 绝尘的神马
摘要:一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,RejectedExecutionHandler handler)corePoolSize: 线程池维护线程的最少数量maximumPoolSize:线程池维护线程的最大数量keepAliveTime: 线程池维护线程所允许的空闲时间unit: 线程池维 阅读全文
posted @ 2013-03-28 17:12 绝尘的神马
摘要:Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。 有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目前有关这方面的资料和书籍都少之又少,大所属介绍线程方面书籍还停留在java5之前的知识层面上。 当然新特征对做多线程程序没有必须的关系,在java5之前通用可以写出很优秀的多线程程序。只是代价不一样而已。 .. 阅读全文
posted @ 2013-03-28 17:06 绝尘的神马
摘要:线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。为什么要用线程池:减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为因为消耗过多的内存,而把服务器累趴下(每个线 阅读全文
posted @ 2013-03-28 17:05 绝尘的神马
摘要:周期性任务调度前世在JDK 5.0之前,java.util.Timer/TimerTask是唯一的内置任务调度方法,而且在很长一段时间里很热衷于使用这种方式进行周期性任务调度。首先研究下Timer/TimerTask的特性(至于javax.swing.Timer就不再研究了)。public void schedule(TimerTask task, long delay, long period) { if (delay schedule(Runnable command, long delay, TimeUnit unit); public ScheduledFuture schedul.. 阅读全文
posted @ 2013-03-28 17:02 绝尘的神马
摘要:1 package com.thread.demo; 2 3 import java.io.IOException; 4 import java.net.ServerSocket; 5 import java.net.Socket; 6 import java.util.Date; 7 8 public class ReceiveServer { 9 10 private final int server_port = 9090;11 12 public ReceiveServer() {13 ServerSocket serverSocket ... 阅读全文
posted @ 2013-03-11 15:08 绝尘的神马
摘要:(一)Java线程简介一、线程概述线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。进程和线程是现代操作系统中两个必不可少的运行模型。在操作系统中可以有多个进程,这些进程包括系统进程(由操作系统内部建立的进程)和用户进程(由用户程序建立的进程);一个进程中可以有一个或多个线程。进程和进程之间不共享内存,也就是说系统中的进程是在各自独立的内存空间中运行的。而一个进程中的线可以共享系 阅读全文
posted @ 2013-03-07 21:02 绝尘的神马
摘要:File既可以代表一个文件,也可以代表一个目录下的一组文件集。在其使用过程中有一个接口FilenameFilter接口很重要,它能够使用正则表达式对文件名进行过滤。示例代码:import java.io.File;import java.io.FilenameFilter;import java.util.Arrays;import java.util.regex.Pattern;/** * * 示例参数:.*\.rar * */public class DirList { public static void main(final String[] args) { Fi... 阅读全文
posted @ 2013-03-05 15:23 绝尘的神马