一、操作系统中线程和进程的概念
现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是...
分类:
编程语言 时间:
2015-05-03 17:29:04
阅读次数:
221
一. lock可以代替synchronized关键字实现互斥功能。使用方法如下:
Lock l = ...;
l.lock();
try {
// access the resource protected by this lock
} finally {
l.unlock();
}
需要注意的是。
1.需要...
分类:
编程语言 时间:
2015-05-02 11:13:30
阅读次数:
157
我们都知道,在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。 1.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。 2.创建线程有几种不同的方式?你喜欢哪一种?为...
分类:
编程语言 时间:
2015-05-02 09:35:24
阅读次数:
146
前言 今天是五一假期第一天,按理应该是快乐玩耍的日子,但是作为一个北漂到京师的开发人员,实在难想出去那玩耍。好玩的地方比较远,近处又感觉没意思。于是乎,闲着写篇文章,总结下昨天写的程序吧。 昨天下午朋友跟我聊起,他说有个需求,需要把上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