一天一代码 :Java线基础程通讯2_JAVA_编程开发_程序员俱乐部
中国优秀的程序员网站
程序员频道
CXYCLUB技术
地图
最新资讯
|
百度新闻
|
GOOGLE地图
|
RSS订阅
|
更多
职场话题
生活休闲
恋爱交友
程序人生
学习进修
职业发展
项目管理
求职面试
程序员创业
JAVA
.NET
C/C++
Ruby
Delphi
JavaScript
PHP
ASP
JSP
HTML
XML
移动开发
开发工具
其他
编程开发
数据库
操作系统
新闻资讯
互联网
非技术区
非技术区
生活休闲
恋爱交友
职业发展
求职面试
程序人生
移动开发
开发工具
DB2
MySql
Sybase
开发
JAVA
.NET
PHP
C/C++
数据库
SQL Server
Oracle
互联网
运营
推广
营销
SEO
系统
Linux
Unix
Windows
资讯
动态
产品
人物
创业
职场
学习
管理
热搜:
异步
同步
编码
冒泡排序
下拉联动
序列化
回调机制
Maven
版本
端口扫描
Flex
Play框架
加密解密
J2EE
缓存
异步
同步
编码
冒泡排序
下拉联动
序列化
回调机制
Maven
版本
端口扫描
更多>>
您所在的位置:
程序员俱乐部
>
编程开发
>
JAVA
> 一天一代码 :Java线基础程通讯2
一天一代码 :Java线基础程通讯2
2011/11/25 9:18:42 javastarter http://prostarter.iteye.com
我要评论(
0
)
摘要:
001importjava.util.concurrent.locks.*;002003classThreadDemo2004{005publicstaticvoidmain(String[]args)006{007Resourceres=newResource();008009Producerpro=newProducer(res);010Consumercon=newConsumer(res);011012Threadt1=newThread(pro)
标签:
Java
代码
001
import
java.util.concurrent.locks.*
;
002
003
class
ThreadDemo2
004
{
005
???
public
static
void
main
(
String
[]
args
)
006
???
{
007
???????
Resource
res
=
new
Resource
();
008
009
???????
Producer
pro
=
new
Producer
(
res
);
010
???????
Consumer
con
=
new
Consumer
(
res
);
011
???????
012
???????
Thread
t1
=
new
Thread
(
pro
);
013
???????
Thread
t2
=
new
Thread
(
pro
);
014
???????
Thread
t3
=
new
Thread
(
con
);
015
???????
Thread
t4
=
new
Thread
(
con
);
016
017
???????
t1
.
start
();
018
???????
t2
.
start
();
019
???????
t3
.
start
();
020
???????
t4
.
start
();
021
???
}
022
}
023
024
class
Resource
025
{
026
???
String
name
;
027
???
int
count
=
1
;
028
???
boolean
flag
=
false
;
029
???
private
Lock
lock
=
new
ReentrantLock
();
030
???
private
Condition
condition_pro
=
lock
.
newCondition
();
031
???
private
Condition
condition_con
=
lock
.
newCondition
();
032
033
???
public
void
set
(
String
name
)
throws
InterruptedException
034
???
{
035
???????
lock
.
lock
();
036
???????
try
037
???????
{
038
???????????
while
(
flag
)
039
???????????????
condition_pro
.
await
();
040
???????????
this
.
name
=
name
+
"......"
+
count
++;
041
042
???????????
System
.
out
.
println
(
Thread
.
currentThread
().
getName
()+
"...生产者.."
+
this
.
name
);
043
???????????
flag
=
true
;
044
???????????
condition_con
.
signal
();
045
???????
}
046
???????
finally
047
???????
{
048
???????????
lock
.
unlock
();
049
???????
}
050
051
???
}
052
053
???
public
void
out
()
throws
InterruptedException
054
???
{
055
???????
lock
.
lock
();
056
???????
try
057
???????
{
058
???????????
while
(!
flag
)
059
???????????????
condition_con
.
await
();
060
???????????
System
.
out
.
println
(
Thread
.
currentThread
().
getName
()+
"...
消费者
.."
+
this
.
name
);
061
???????????
flag
=
false
;
062
???????????
condition_pro
.
signal
();
063
???????
}
064
???????
finally
065
???????
{
066
???????????
lock
.
unlock
();
067
???????
}
068
???
}
069
}
070
071
class
Producer
implements
Runnable
072
{
073
???
private
Resource
res
;
074
075
???
Producer
(
Resource
res
)
076
???
{
077
???????
this
.
res
=
res
;
078
???
}
079
???
public
void
run
()
080
???
{
081
???????
while
(
true
)
082
???????
{
083
???????????
try
084
???????????
{
085
???????????????
res
.
set
(
"+商品+"
);
086
???????????
}
087
???????????
catch
(
InterruptedException
e
)
088
???????????
{
089
???????????
}
090
???????
}
091
???
}
092
093
}
094
095
class
Consumer
implements
Runnable
096
{
097
???
private
Resource
res
;
098
099
???
Consumer
(
Resource
res
)
100
???
{
101
???????
this
.
res
=
res
;
102
???
}
103
???
public
void
run
()
104
???
{
105
???????
while
(
true
)
106
???????
{
107
???????????
try
108
???????????
{
109
???????????????
res
.
out
();
110
???????????
}
111
???????????
catch
(
InterruptedException
e
)
112
???????????
{
113
???????????
}
114
???????
}
115
???
}
116
}
[/font]
上一篇:
使用JAXB映射HashMap
下一篇:
php
相关文章
·
Java实现二维码QRCod
·
Java面向对象(讲义)请各
·
java继承中的一些 错误认
·
在CMD下对Java程序的调
·
Java 对象句柄
·
Java多线程 Web服务
·
java 位移运算与乘法运算
·
java自动拆装箱的错误使用
·
转:java内部类
·
java获取mysql连接
查看所有评论(
0
)
我要评论
发表评论
用户名:
匿名
最新文章
J..
h..
·
后台json传递
·
Java实现二维码QRCod
·
Java面向对象(讲义)请各
·
在HBase中应用MemSt
·
java继承中的一些 错误认
·
JXL copySheet
·
在CMD下对Java程序的调
·
同步与异步--阻塞与非阻塞
·
JDBC连接各种数据库
·
Java 对象句柄
·
jna调用dll文件遇见问题
·
hadoop0.20.1在c
·
JSTL一些详细解析
·
Java多线程 Web服务
·
word,ppt,excel
最新标签
异步
同步
编码
冒泡排序
下拉联动
序列化
回调机制
Maven
版本
端口扫描
今日热点
·
全面认识Eclipse中JVM内存设置
·
struts标签实现菜单动态级联
·
JDK1.6官方下载地址
·
后台json传递
·
Java实现二维码QRCod
·
Java面向对象(讲义)请各
·
在HBase中应用MemSt
·
java继承中的一些 错误认
·
JXL copySheet
·
在CMD下对Java程序的调
推荐文章
unable ..
老..
·
The last pack
·
unable to find valid
·
老三携剑出山,Swing法力
·
java poi 创建exc
·
Errors occurre
·
[linux]ubuntu下
·
java 两数相除 四舍五入
·
Java 调用远程webservice接
·
Hadoop学习全程记录——
·
JAVA 比较两张图片的相似
·
J2EE、JAVA开源版OA发布了(JO
·
在linux下用tomcat
·
异常ognl.OgnlExc
·
Eclipse设置Tomcat启动超时时
·
org.springfra
English
|
关于我们
|
诚聘英才
|
联系我们
|
网站大事
|
友情链接
|
意见反馈
|
网站地图
Powered by
程序员俱乐部
程序提供: HugoCMS 2.0
网站备案:苏ICP备11048748号-1