package com.anzi.jmsht.ui;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.concurrent.ExecutorService;import ...
分类:
其他好文 时间:
2015-05-01 17:18:43
阅读次数:
192
前言 今天是五一假期第一天,按理应该是快乐玩耍的日子,但是作为一个北漂到京师的开发人员,实在难想出去那玩耍。好玩的地方比较远,近处又感觉没意思。于是乎,闲着写篇文章,总结下昨天写的程序吧。 昨天下午朋友跟我聊起,他说有个需求,需要把上G的txt文件读取写入到数据库。用普通的io结果自然是OOM了.....
分类:
编程语言 时间:
2015-05-01 10:37:27
阅读次数:
128
单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关。也就说,如果static方法或者非static方法不是线程安全的,那么不会因为这个类使用了单例模式,而变的安全。 闲话休说,看代码: i...
分类:
编程语言 时间:
2015-04-30 23:10:11
阅读次数:
147
SynchronizedJava中每个对象都有一个内置锁,当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。当程序运行到synchronized同步方法或代码块时才该对象锁才起作用。
一个对象只有一个锁。所以,如果一个线程获得该锁,就没有其他线程可以获得锁,直到第一...
分类:
编程语言 时间:
2015-04-30 20:11:06
阅读次数:
147
http://jameswxx.iteye.com/blog/806968最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣。已经拟好了提纲,大概分为这几个主题: java线程安全,java垃圾收集,java并发包详细介绍,java profile和jvm性能调优 。慢...
分类:
编程语言 时间:
2015-04-30 14:00:45
阅读次数:
162
demo1: 使用FutureTask和Callable,获取一个线程的返回值。在获取返回值前可以做其他事,在Future.get()时阻塞,也可调用
get(long timeout, TimeUnit unit)方法设置在等待long时间后如果还没有返回值抛出异常。
package com.lipeng;
import java.util.concurrent.Callable;
i...
分类:
编程语言 时间:
2015-04-29 00:43:25
阅读次数:
140
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。Thread类是实现了Runnable接口....
分类:
编程语言 时间:
2015-04-28 22:41:15
阅读次数:
215
这两天在写一个java多线程的爬虫,以广度优先爬取网页,设置两个缓存:
一个保存已经访问过的URL:vistedUrls
一个保存没有访问过的URL:unVistedUrls
需要爬取的数据量不大,对URL压缩后,可以把这两个数据结构都放入内存,vistedUrls很显然用HashSet实现,因为已经访问的URL只会添加,不会删除和修改,使用HashSet可以高效...
分类:
编程语言 时间:
2015-04-28 18:35:37
阅读次数:
244
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)
Java多线程面试问题1.
进程和线程之间有什么不同?
一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务...
分类:
编程语言 时间:
2015-04-28 16:17:06
阅读次数:
177
suspend()和resume()方法:两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的 resume()被调用,才能使得线程重新进入可执行状态。典型地,suspend()和resume()被用在等待另一个线程产生的结果的情 形:测试发现结果还没有产生后,让...
分类:
编程语言 时间:
2015-04-28 01:52:50
阅读次数:
144