快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Java 线程入门??线程的同步

//可以尝试把下面的要害字synchronized去掉。

public class CubbyHole {

private int contents;

private boolean available = false;

public synchronized int get() {

while (available == false) {

try {

wait();

} catch (InterruptedException e) {

}

}

available = false;

notifyAll();

return contents;

}

public synchronized void put(int value) {

while (available == true) {

try {

wait();

} catch (InterruptedException e) {

}

}

contents = value;

available = true;

notifyAll();

}

}



public class Producer extends Thread {

private CubbyHole cubbyhole;

private int number;



public Producer(CubbyHole c, int number) {

cubbyhole = c;

this.number = number;

}



public void run() {

for (int i = 0; i < 10; i++) {

cubbyhole.put(i);

System.out.println("Producer #" + this.number + " put: " + i);

try {

sleep((int) (Math.random() * 100));

} catch (InterruptedException e) {

}

}

}

}



public class Consumer extends Thread {

private CubbyHole cubbyhole;

private int number;



public Consumer(CubbyHole c, int number) {

cubbyhole = c;

this.number = number;

}



public void run() {

int value = 0;

for (int i = 0; i < 10; i++) {

value = cubbyhole.get();

System.out.println("Consumer #" + this.number + " got: " + value);

}

}

}



public class ProducerConsumerTest {

public static void main(String[] args) {

CubbyHole c = new CubbyHole();

Producer p1 = new Producer(c, 1);

Consumer c1 = new Consumer(c, 1);



p1.start();

c1.start();

}

}







返回类别: 教程
上一教程: [Eclipse笔记]Just for fun ? 在Eclipse下编译和运行C#的代码
下一教程: java程序的递归算法,列出某个目录下的所有子目录和文件

您可以阅读与"Java 线程入门??线程的同步"相关的教程:
· Java线程入门??什么是线程
· JAVA基本教学:线程入门
· Java线程入门??定义线程中的 run 方式
· Java入门笔记6_线程
· JAVA线程的深入探讨
    微笑服务 优质保证 索取样品