fantasy-java
我越发的感觉到你就是我生命中的精灵,翻转跳跃在我那空虚的时空;有人说世界上最美的是春天和爱情,在我眼中有你的地方就是最美的。
BlogJava
首页
新随笔
联系
聚合
管理
随笔-95 评论-31 文章-10 trackbacks-0
多线程复习
1
public
class
MyStack
{
2
private
int
[] a;
3
private
int
count
=
0
;
4
public
final
int
MAX_SIZE;
5
6
public
MyStack(
int
size)
{
7
MAX_SIZE
=
size;
8
a
=
new
int
[size];
9
count
=
0
;
10
}
11
12
public
synchronized
void
push()
{
13
while
(count
==
MAX_SIZE)
{
//
这里用while而不是if因为当被唤醒时,该线程处于锁池等待获取锁,这个时候可能会有别的该线改变数组的大小。所以唤醒时继续检查数组是否已满。
14
try
{
15
this
.wait();
//
释放掉当前的对象锁,在等待池等待
16
}
catch
(InterruptedException e)
{
17
e.printStackTrace();
18
}
19
}
20
a[count
++
]
=
count;
21
System.out.println(Thread.currentThread().getName()
+
"
压入数据:
"
+
count);
22
this
.notify();
//
唤醒生产者消费者线程
23
}
24
25
public
synchronized
int
pop()
{
26
while
(count
==
0
)
{
27
try
{
28
this
.wait();
29
}
catch
(InterruptedException e)
{
30
e.printStackTrace();
31
}
32
}
33
this
.notify();
34
System.out.println(Thread.currentThread().getName()
+
"
弹出数据:
"
+
count);
35
return
a[
--
count];
36
}
37
}
38
/** */
/**
39
*生产者
40
*
*/
41
public
class
Producer
extends
Thread
{
42
43
private
MyStack stack;
44
45
public
Producer(MyStack stack)
{
46
this
.stack
=
stack;
47
}
48
@Override
49
public
void
run()
{
50
while
(
true
)
{
51
stack.push();
52
try
{
53
Thread.sleep(
200
);
54
}
catch
(InterruptedException e)
{
55
e.printStackTrace();
56
}
57
}
58
}
59
}
60
/** */
/**
61
*消费者
62
*
*/
63
public
class
Consumer
extends
Thread
{
64
65
private
MyStack stack;
66
67
public
Consumer(MyStack stack)
{
68
this
.stack
=
stack;
69
}
70
71
@Override
72
public
void
run()
{
73
while
(
true
)
{
74
stack.pop();
75
try
{
76
Thread.sleep(
300
);
77
}
catch
(InterruptedException e)
{
78
e.printStackTrace();
79
}
80
}
81
}
82
}
线程状态图
posted on 2010-08-19 10:19
朔望魔刃
阅读(230)
评论(0)
编辑
收藏
所属分类:
java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
相关文章:
Jdk和cglib动态代理
mybatis减少resultMap列映射
restful安全认证
spring-boot配置quartz
spring data jpa 小结
spring-boot data jpa 性能优化
spring-boot data jpa 复杂查询
spring-boot-data-jpa nativeQuery 详解
spring-boot data jpa
spring-boot 分页小问题
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Android
flex(1)
git
gradle
IHE&DICOM&HL7的开源框架(1)
java(40)
JavaScript(2)
maven(1)
mybatis
netty(3)
python(3)
spring
svn(1)
即时通信(4)
各种整合
各种配置(9)
数据库(2)
设计模式&&数据结构(11)
随笔档案
2018年8月 (1)
2018年3月 (1)
2018年1月 (1)
2017年12月 (3)
2017年11月 (6)
2017年10月 (1)
2017年8月 (2)
2017年7月 (1)
2017年6月 (1)
2017年5月 (1)
2017年2月 (1)
2016年12月 (3)
2016年10月 (1)
2016年9月 (2)
2015年12月 (1)
2015年7月 (2)
2015年5月 (1)
2015年2月 (3)
2015年1月 (1)
2014年12月 (2)
2014年7月 (1)
2014年5月 (4)
2014年3月 (1)
2013年9月 (6)
2013年8月 (1)
2013年7月 (3)
2013年4月 (1)
2012年7月 (2)
2012年6月 (4)
2012年5月 (2)
2012年1月 (1)
2011年12月 (2)
2011年11月 (2)
2011年9月 (1)
2011年6月 (1)
2011年5月 (1)
2011年3月 (4)
2011年2月 (2)
2010年12月 (2)
2010年9月 (9)
2010年8月 (4)
2010年4月 (1)
2010年3月 (1)
2010年1月 (2)
文章分类
文章(2)
生活(2)
英语学习(3)
诗歌(3)
文章档案
2011年1月 (2)
2010年12月 (3)
2010年11月 (1)
2010年10月 (1)
2010年9月 (2)
2010年8月 (1)
收藏夹
技术文章(2)
娱乐博客
周德东
郭敬明
韩寒
鬼谷女
牛博
其实我是一个程序员
博客大巴~~
很牛的C++程序员
梦幻之旅
达内恩师
雪山飞鹄
高性能网站专家 淘宝 阿里架构师
搜索
最新评论
1. re: jsp通过js按钮导出word小结
下达
--q
2. re: linux安装mysql后root无法登录
谢啦
--galo
3. re: openfire_3.9.3集群配置
我这根本就不显示hazelcast 这个插件包。请教下各位大神。
--openfre
4. re: openfire_3.8.2集群配置[未登录]
hazelcast-cache-config.xml 文件每一台都要配4行ip吗
--wp
5. re: openfire_3.8.2集群配置
评论内容较长,点击标题查看
--朔望魔刃
阅读排行榜
1. linux安装mysql后root无法登录(17830)
2. maven三种打包插件(15118)
3. openfire_3.8.2集群配置(9850)
4. 联想y510p网卡设置(8556)
5. swing日期控件(6842)
评论排行榜
1. openfire_3.8.2集群配置(17)
2. dcm4chee部署安装(3)
3. Java Service Wrapper工具把Java程序转换为Windows服务小结(2)
4. jsp通过js按钮导出word小结(2)
5. XML Schema<一>(1)