- 博客(26)
- 资源 (67)
- 收藏
- 关注
原创 传统集合类在并发访问时的问题及Java5提供的同步集合类
1.传统集合类在并发访问时的问题说明,见例子程序 2.传统方式下用Collections工具类提供的synchronizedCollection方法来获得同步集合,分析该方法的实现源码。 3.传统方式下的Collection在迭代集合时,不允许对集合进行修改。 (1)用空中网面试的同步级线程题进行演示 (2)根据AbstractList的checkF
2012-11-29 22:22:23 1508
原创 可阻塞的队列BlockingQueue
1.什么是可阻塞队列,阻塞队列的作用与实际应用,阻塞队列的实现原理。 2.阻塞队列与Semaphore有些相似,但也不同,阻塞队列是一方存放数据,另一方释放数据,Semaphore通常则是由同一方设置和释放信号量。 3.ArrayBlockingQueue BlockingQueue 方法以四种形式出现,对于不能立即满足但可能在将来某一时刻可以满足的操作,这四
2012-11-28 23:47:04 1238
原创 java5中为多线程提供的同步工具类
1、Semaphore实现信号灯 (1)Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。 A、 Semaphore实现的功能就类似厕所有5个坑,假如有十个人要上厕所,那么同时能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中的任何一个人让开后,
2012-11-28 22:12:38 774
原创 Lock和Condition实现线程同步通信
1.在等待 Condition 时,允许发生“虚假唤醒”,这通常作为对基础平台语义的让步。对于大多数应用程序,这带来的实际影响很小,因为 Condition 应该总是在一个循环中被等待,并测试正被等待的状态声明。某个实现可以随意移除可能的虚假唤醒,但建议应用程序程序员总是假定这些虚假唤醒可能发生,因此总是在一个循环中等待。 2.一个锁内部可以有多个Condition,即有多路等待和通知,
2012-11-27 23:52:06 639
原创 ReadWriteLock读写锁实现线程读写互斥问题
1.Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。 2.读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有
2012-11-27 21:59:46 1694
原创 Lock实现线程的同步
Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象 例子程序:package edu.java5.lock;import java.util.concurrent.locks.Lock;import java.util.concurrent.lo
2012-11-26 11:30:36 655
原创 Callable和Future实现调用任务并返回结果数据
1、Future取得的结果类型和Callable返回的结果类型必须一致,这是通过泛型来实现的。 2、Callable要采用ExecutorSevice的submit方法提交,返回的future对象可以取消任务。 3、CompletionService用于提交一组Callable任务,其take方法返回已完成的一个Callable任务对应的Future对象。 (1
2012-11-26 10:59:51 1186
原创 Java5中线程池的概念与Executors类的应用
1.线程池的概念与Executors类的应用 (1)创建固定大小的线程池 (2)创建缓存线程池 (3)创建单一线程池 2.关闭线程池 (1)shutdown与shutdownNow的比较 3.用线程池启动定时器 (1)调用ScheduledExecutorService的schedule方法,返回的ScheduleFuture对象可以取
2012-11-24 23:24:29 936
原创 线程间共享数据例子--售票/退票
例子程序:package edu.review;import java.util.Random;/** * 题目要求: * 两个售票窗口,对某一趟列车票进行操作,一个为售票窗口,一个为退票窗口,每个窗口售/退票100张 **/public class Thread2ThreadDataShare { public static void main(String[] ar
2012-11-23 20:41:19 1086
原创 ThreadLocal实现线程范围内模块之间共享数据及线程间数据独立
注意: 1.见下页的示意图和辅助代码解释ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。 2.每个线程调用全局ThreadLocal对象的set方法,就相当于往其内部的map中增加一条记录,key分别是各自的线程,value是各自的set方法传进去的值。在线程结束
2012-11-23 20:06:13 4217
原创 线程范围内模块之间共享数据及线程间数据独立
多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 2.如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: (1)将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个Run
2012-11-22 17:33:48 1190
转载 内部晋升越来越困难,但是外部来的大P越来越多,所以很多人都选择跳槽
@hellodba 发的一个帖子:“内部晋升越来越困难,但是外部来的大P越来越多,所以很多人都选择跳槽”,之后我从三个方面简要的进行了回答:“外面来的总是有包装的,内部的都是肉身PK,此一输;外面来的总是小股人马,内部的一批批的,升谁都伤感情,此二输;外面来的通常都是大佬推荐的,没有特别重大机会,人不会来,内部的就不解释了,成果都被大佬吸收,难有机会,此三输”。之后讨论不断,我也余兴未了,继续写来
2012-11-22 13:13:13 2074 1
原创 wait()与notify()实现线程间的通信
例子程序:package edu.review;public class TraditionalThreadCommunication { /** * 题目要求: * 子线程循环10次,接着主线程循环20次,接着又回到子线程循环10次,接着再回到主线程循环20次, * 如此循环50次,请写出程序。 */ public static void main(St
2012-11-21 21:34:06 702
原创 线程的同步互斥synchronized
注意: 1.静态方法所使用的同步监视器对象是该类的字节码对象,如:Outputer.class 2.类非静态方法所使用的同步监视器对象时this,即类本实例对象 3.synchronized实现两个线程的synchronized代码块的内容不会被中断。保证synchronized代码块的原子性。例子程序:package edu.review;pu
2012-11-21 21:20:12 661
原创 定时器应用:Timer和TimerTask类
Timer和TimerTask类:Timer类为一个定时器类,调用其schedule(TimerTask task,...)方法,即可在指定时间调用TimerTask类的run()方法中的代码TimerTask类为一个任务类,其为抽象类,只需要创建其子类,重写其run()方法,则可以调用run()中的代码例子程序:package edu.review;import ja
2012-11-21 14:29:06 695
原创 创建线程的两种方式
创建线程有两种方式: (1)创建Thread的子类,重写run()方法 (2)创建Thread对象,传递一个Runnable实现类的对象注意: 如果在Thread子类覆盖的run方法中编写了运行代码,也为Thread子类对象传递了一个Runnable对象,那么,线程运行时的执行代码为子类中的run()方法Thread.class类的源代码package ja
2012-11-20 23:47:10 702
原创 通过AJAX或多线程发送邮件实现页面不滞留
由于发送带有附件的邮件会耗费很多的时间,所以如果单纯用访问Servlet的形式发送邮件的话,那么会造成客户端页面滞留的效果,这样不是很好,所以我们一般采用Ajax的形式发送页面,实现页面无刷新,或者通过通过创建另一个线程,主线程返回客户端,让子线程发送邮件,这样可以实现页面提前返回。 程序代码 MailByThreadServletServlet.javapackage edu.s
2012-11-09 23:50:21 2470
原创 域名解析原理及其解析方式
域名解析原理 一个域中的每个主机名与其IP地址的映射关系由这个域的DNS服务器负责管理,例如,“www.it315.org”、“ftp.it315.org”、“blog.it315.org”等主机名都由管理域“it315.org”的DNS服务器进行管理,而不能由管理域“org”的DNS服务器进行管理。 每个子域都必须在其直接父域的DNS服务器上注册该子域的名称和该子域的DNS服务器的I
2012-11-09 23:30:10 7995
原创 Tomcat中JavaMail支持与冲突--Tomcat创建邮件发送环境对象Session
程序例子: (1)首先在应用下的WebRoot/META-INF目录下创建名为context.xml的文件(名称不能换) <Resource name="mail/Dog" auth="Container" type="javax.mail.Session" mail.smtp.host="smtp.163.com" mail.sm
2012-11-09 23:24:17 5871
原创 邮件附件乱码、设置邮件回复人、设置邮件发送人收件人姓名、发送现有的eml文件
解决邮件附件乱码问题 //为附件1关联数据源 DataSource ds1 = new FileDataSource("C:\\Documents and Settings\\Administrator\\桌面\\river.jpg"); DataHandler dh1 = new DataHandler(ds1); attch1.setDataHandler(dh1)
2012-11-07 11:42:31 4754 1
原创 包含附件和嵌套图片的复合邮件的生成
复合邮件的整体结构图 MIME中的组合关系复合邮件的分隔线层次结构分析邮件组织结构相关的APIMimeMessage类表示整封邮件。MimeBodyPart类表示邮件的一个MIME消息。MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。javaMail生成包含附件和嵌套图片的复合邮件:package
2012-11-06 23:00:14 2338
原创 使用JavaMail发送一封简单的邮件
什么是Java Mail (1)要自己写程序发送和接收邮件,可以直接采用Socket编程连接上远程的邮件服务器,然后按照邮件协议与邮件服务器进行交互,涉及较多细节。另外,要想自己编程创建出复杂的MIME格式的邮件,是一件非常困难和麻烦的事情。 (2)JavaMail 是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如
2012-11-06 12:39:07 2752
原创 邮件传输协议及各协议下命令
SMTP协议全称为Simple Mail Transfer Protocol(简单邮件传输协议),它定义了邮件客户端软件与SMTP服务器之间、以及两台SMTP服务器之间的通讯规则。POP3协议全称为Post Office Protocol(邮局协议),它定义了邮件客户端软件与POP3服务器的通讯规则。IMAP协议全称为Internet Message Access Protoc
2012-11-05 11:42:42 1016
原创 Java程序执行.bat文件实现循环发送Email
Java程序执行.bat文件实现循环发送Emailpackage edu.mail.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class Bad { publ
2012-11-04 22:28:31 1587
原创 cmd下手工由sina用户向sohu用户发送Email
在使用SMTP协议发送邮件时,cmd下其用户名和密码需要经过base64编码进行处理,POP3协议接受邮件则不需要进行base64编码package edu.mail.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import sun.
2012-11-04 11:48:46 2111
传智播客在线支付易宝支付源码 和 易宝支付产品(HTML版)通用接口文档3.0 3.0.pdf
2012-10-09
jasperReports+iReport3.0.0生成打印文件.doc
2012-10-02
传智播客_JSP技术_方立勋.zip
2012-09-22
Hadoop完全分布式环境搭建步骤
2014-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人