- 浏览: 35648 次
- 性别:
- 来自: 泉州
最新评论
-
XinYiTian:
我觉得挺好的,是学习java并发的不错书籍,值得看许多遍
应用线程池(JAVA并发编程实践笔记 二) -
Blithe:
博主,这书中文的翻译的怎么样啊准备看
应用线程池(JAVA并发编程实践笔记 二)
文章列表
1.
定制线程池的大小
Ncpu = CPU
的数量
Ucpu =
目标
CPU
的使用率,
0<=Ucpu<=1
W/C =
等待时间与计算时间的比率
为保持处理器达到期望的使用率,最优的池的大小等于:
Nthreads = Ncpu * Ucpu * (1 + W / C)
也可以使用
Runtime
来获得
CPU
的数目
int
num = Runtime.getRuntime
().availableProcessors();
2.
定制
ThreadPoolExecutor
利用
new
ThreadPoolExecuto ...
- 2008-12-21 21:23
- 浏览 1899
- 评论(2)
线程的取消和关闭
1. 任务取消
当外部代码能够在活动自然完成之前,把它更改为完成状态,那么这个活动被称为可取消的。
2. 中断
调用interrupt并不意味着必然停止目标线程正在进行的工作;它仅仅传递了请求中断的消息。
中断通常是取消最明智的选择。
因为每一个线程都有其自己的中断策略,所以你不应该中断线程,除非你知道中断对这个线程意味着什么。
3. 通过Future来取消
4. 处理不可中断的阻塞
a) java.io中的同步Socket I/O,可通过关闭底层的的Socket来实现。
b) java.nio中的同步I/O。关闭I ...
- 2008-12-18 22:08
- 浏览 2984
- 评论(0)
Vi(Visual interface)是Linux/Unix下最为流行的文本编辑器,几乎所有的Linux/Unix系统都配备了Vi。Vi没有菜单,只有命令,通过各种命令可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行 ...
在Mysql5.0下运行通过
如下两段代码,说明了case的两种方式,一种只有一个分支,一种支持多种分支
select
case when 1 = 1
then 1
else 2
end;
select
case 2
when 1 then 1
when 2 then 2
when 3 then 3
else 4
end;
- 2008-12-16 21:09
- 浏览 1707
- 评论(0)
一.XML关心数据结构,而XSL关心数据的显示。
在一个XML文件中引入XSL文件需要如下的语句。
<?xml-stylesheet href=”XXX.xsl” type=”text/xsl” ?>
在一个xsl中,必须以如下的语句来开头。
<?xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl>
<xsl:template match=”/”>
</xsl:template>
</xsl:stylesheet>
在XSL中,可以声明模板,而在文档的其它地方来引入 ...
- 2008-12-14 20:35
- 浏览 1242
- 评论(0)
有一个Sales表,只包含日期列和顾客列,是否有办法在一条SQL语句中计算每个顾客在两次销售之间的平均天数?
表结构如下:
Create table Sales
(customer_name char(5) not null,
Sale_date date not null,
Primary key(customer_name, sale_date);
Insert into Sales values
insert into Sales values
("Fred", "1994-06-01"),
("Mary", "19 ...
- 2008-12-13 22:13
- 浏览 1566
- 评论(0)
以下数据表记录了供应商和供应商所能提供的零件,
现在需要找出能够提供完全相同零件的供应商。
Create table SupParts
(sno char(2) not null,
Pno char(2) not null,
Primary key(sno, pno));
思路:
证明两个集合相同可采用以下两种方法
1. 若A包含于B,同时B包含于A,则可证明A=B
2. 若A并B 等于 A交B ,则可证明A=B
采用第一种的思路的一个解答如下:
select sp1.sno, sp2.sno
from SupParts as sp1
inner join
SupParts as s ...
- 2008-12-13 21:05
- 浏览 2552
- 评论(0)
延迟的、具有周期性的任务
Timer只创建唯一的线程来执行所有timer任务。如果一个timer任务的执行很耗时,会导致其他TimerTask的时效准确性出问题。例如一个TimerTask每10ms执行一次,而另一个TimerTask每40ms执行一次,重复出现的任务要么会在耗时的任务完成后快速连续地被调用4次,要么完全“丢失”4次调用(取决于它是否按照固定的频率或延迟进行调度)。调度线程池(Scheduled thread pool)解决了这个缺陷,它让你可以提供多个线种来执行延迟、并具周期性的任务。
...
- 2008-12-12 21:32
- 浏览 1333
- 评论(0)
ANT工具是Apache的一个开放源代码项目,它是一个优秀的软件工程管理工具。ANT本身用java语言实现,并且使用XML格式的配置文件来构建工程,可以很方便地实现多平台编译,非常适合管理大型工程。
ANT每个工程都对应一个build.xml文件。
build.xml文件包括一个<project>和至少一个<target>元素。
常见的Ant内置任务。
property 设置name/value形式的属性。
mkdir 创建目录
copy 拷贝文件和文件夹
delete ...
- 2008-12-11 21:11
- 浏览 809
- 评论(0)