这是一个关于多线程的!
来源:互联网 发布:淘宝美食主播招聘 编辑:程序博客网 时间:2024/05/21 09:36
class TestThread
{
public static void main(String[] args)
{
Data dd = new Data();
T1 t1 = new T1(dd);
T2 t2 = new T2(dd);
t1.start();
t2.start();
}
};
class Data
{
char c;
boolean flag;
};
class T1 extends Thread
{
Data d;
public T1(Data d)
{
this.d = d; //此处前面的this.d可以省略掉this
}
public void run()
{
for (int i = 0;i < 20 ;i++ )
{
synchronized(d)
{
while (d.flag)
{
try
{
d.wait();
}
catch (Exception error)
{
}
}
d.c = (char)('A' + (int)(Math.random()*26));
d.flag = true;
System.out.println("产生: " + d.c);
d.notify(); //此处用d.notifyAll();可以唤醒等待的所有线程
}
try
{
Thread.sleep((int)(Math.random()*1000));
}
catch (Exception error)
{
}
}
}
};
class T2 extends Thread
{
Data d;
public T2(Data d)
{
this.d = d;
}
public void run()
{
for (int i = 0;i < 20 ;i++ )
{
synchronized(d)
{
while (!d.flag)
{
try
{
d.wait();
}
catch (Exception error)
{
}
}
System.out.println("产生: " + d.c);
d.flag = false;
d.notify(); //此处用d.notifyAll();可以唤醒等待的所有线程
}
try
{
Thread.sleep((int)(Math.random()*1000));
}
catch (Exception error)
{
}
}
}
};
- 这是一个关于多线程的!
- 这是一个关于我的故事
- 关于多线程的一个例子
- 关于iOS多线程的使用(主要是关于GCD的)
- 这是一个关于Oracle数据备份的专辑
- 这是一个关于UC浏览器和电脑技术的博客
- forms 、elements这是关于form的一个例子
- 这是一个关于HTML编辑器的功能测试
- 关于一个支持多线程下载的Servlet
- 一个关于多线程同步问题的分析
- 一个关于多线程同步的小练习。
- 关于一个多线程类的设计方法
- 关于库的编写,是一个问题
- 一个可能是关于namespace的问题?
- 马云:关于“菜鸟”项目,惟一不争论的是——这是一个理想主义项目
- synchronized是解决多线程中同步问题的一个关键字
- 以下是一个简单的多线程爬虫实现
- 关于游戏服务器是多线程还是单线程的讨论
- 杂粹
- 姜昆、李文华相声《如此照相》,警醒
- 变量: 赋值 的几种方法
- 一些能给你指引方向的话!【不断更新】
- Rational统一过程
- 这是一个关于多线程的!
- 我从表达式语言角度对C#的看法
- QQ在线时长等级说明
- 第一次
- Be there or be square
- 数据集技术
- 亡羊补牢,尤时未晚!
- 创造环境,创造激情!~
- 学编程,决不可心浮气燥