黑马程序员技术交流社区
标题:
多线程间通信练习
[打印本页]
作者:
赵文杰
时间:
2012-5-13 13:47
标题:
多线程间通信练习
* 开启2条线程, 线程1中循环打印A, 线程2中循环打印B
* 打印1次A, 打印1次B, 两条线程交替执行5次
作者:
龚建锋
时间:
2012-8-3 23:48
[img][/img]public class Work {
public static void main(String[] args){
final HomeWork h=new HomeWork();
new Thread(){
public void run(){
for(int i=0;i<5;i++)
h.haha();
}
}.start();
new Thread(){
public void run(){
for(int i=0;i<5;i++)
h.hah();
}
}.start();
}
}
class HomeWork {
private int x = 1;
private int flag = 1;
public synchronized void haha() {
if (flag == 2) {
try {
wait();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("线程1:" +"A");
System.out.println();
flag = 2;
notify();
}
public synchronized void hah() {
if (flag == 1) {
try {
wait();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("线程2:" +"B");
System.out.println();
flag=1;
notify();
}
}
11.jpg
(34.14 KB, 下载次数: 106)
下载附件
2012-8-3 23:48 上传
作者:
洪灿阳
时间:
2012-12-2 23:01
//张老师的线程课程里面讲的知识很详细的
package cn.itcast.Test;
public class ThreadTest2 {
/**
* @param args
*/
/** 开启2条线程, 线程1中循环打印A, 线程2中循环打印B
* 打印1次A, 打印1次B, 两条线程交替执行5次*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final Print print=new Print();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<5;i++){
print.printA();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<5;i++){
print.printB();
}
}
}).start();
}
}
class Print{
private boolean flase=true;
public synchronized void printA(){
while(!flase){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("printA");
flase=false;
this.notify();
}
public synchronized void printB(){
while(flase){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("printB");
flase=true;
this.notify();
}
}
复制代码
作者:
酸溜溜
时间:
2012-12-26 16:16
final Print print=new Print();
new Thread(new Runnable() {
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2