线程之条件阻塞Condtion的应用
来源:互联网 发布:cpa软件联盟 编辑:程序博客网 时间:2024/05/16 14:19
请大家伙多多指教:
邮箱:weimingweicom@sina.com
请关注:ailiandeziwei
package www.csdn.net;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class ConditionCommunication {
/**
* @param args 条件阻塞Condition的应用 condition
*/
public static void main(String[] args) {
final Business business = new Business();
new Thread(
new Runnable() {
@Override
public void run() {
for(int i=1;i<=50;i++){
business.sub(i);
}
}
}
).start();
for(int i=1;i<=50;i++){
business.main(i);
}
}
static class Business {
Lock lock = new ReentrantLock();//定义锁
Condition condition = lock.newCondition();
private boolean bShouldSub = true;
public void sub(int i){
lock.lock();
try{
while(!bShouldSub){
try {
condition.await();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int j=1;j<=10;j++){
System.out.println("sub thread sequence of " + j + ",loop of " + i);
}
bShouldSub = false;
condition.signal();
}finally{
lock.unlock();
}
}
public void main(int i){
lock.lock();
try{
while(bShouldSub){
try {
condition.await();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int j=1;j<=100;j++){
System.out.println("main thread sequence of " + j + ",loop of " + i);
}
bShouldSub = true;
condition.signal();
}finally{
lock.unlock();
}
}
}
}
- 线程之条件阻塞Condtion的应用
- Android中线程同步之Mutex与Condtion的用法
- Android中线程同步之MUTEX与Condtion的实现
- Android中线程同步之Mutex与Condtion的用法
- Android中线程同步之Mutex与Condtion的用法
- Android中线程同步之Mutex与Condtion的用法
- 条件阻塞Condition的应用
- 条件阻塞Condition的应用
- java5条件阻塞Condition的应用(十三)
- 【java并发】条件阻塞Condition的应用
- java并发之Condtion在生产者消费者中的应用
- Java并发之读写锁Lock和条件阻塞Condition的应用
- Java并发之读写锁Lock和条件阻塞Condition的应用
- Java并发之读写锁Lock和条件阻塞Condition的应用
- java5条件阻塞condition的应用(1)
- Java多线程与并发应用-(9)-锁lock+条件阻塞conditon实现线程同步通信
- (10)java5条件阻塞Condition的应用<包含阻塞队列知识>
- (10)java5条件阻塞Condition的应用<包含阻塞队列知识>
- 做题要仔细!!!HDOJ 1016
- 浮点数求最大公约数
- Hadoop介绍
- extern "C"/C中如何调用C++
- oracle中创建函数
- 线程之条件阻塞Condtion的应用
- 怎么下载安装Firebug和使用Firebug
- Memcache内存缓存
- How to power on/of the machine by KVM
- Android-自定义控件之继承View
- hdu1002
- PHP操作Memcache
- oracle中的触发器
- 联想EB25954900无线硬开关和无线软开关FN+无线启动打不开