模拟一个场景:
Meten和Eric同时喜欢上了一个妹妹Janet,这两个人就开始追了
Eric追Janet的方式是牺牲色相,他追了50次
Meten追Janet的方式用的是金钱,我追了30次
在追的过程中,如果打印meten的追女孩子的方式有一次是色相,那么这个程序就错了
或者如果打印Eric追女孩子的方式有一次是金钱,那么这个程序就错了
提醒:共享数据,但不共享代码
public class Exec5Demo {
/**
* 共享数据的时候,为了防止出现脏数据,应加锁
*/
public static void main(String[] args){
Girl girl = new Girl("Janet");
Runnable chasingTarget = new ChasingGirlTarget(girl,"用金钱");
Thread chTarget = new Thread(chasingTarget,"Meten");
Thread chasingGirlTarget = new ChasingGril(girl,"牺牲色相","Eric");
chTarget.start();
chasingGirlTarget.start();
}
}
class Girl{
private String name;
public Girl(String name){
this.name = name ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* Eric
* @author Administrator
*
*/
class ChasingGril extends Thread{
private Girl girl;
private String method;
public ChasingGril(Girl girl,String method,String name){
super(name);
this.girl = girl ;
this.method = method;
}
public void run(){
String name = Thread.currentThread().getName();
System.out.println(name + "喜欢上" + this.girl.getName());
System.out.println(name + "开始追" + this.girl.getName());
synchronized(girl){
for(int i = 0 ; i < 50; i++ ){
System.out.println(name+this.method+"追"+this.girl.getName() );
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
/**
* Meten
* @author Administrator
*
*/
class ChasingGirlTarget implements Runnable{
private Girl girl ;
private String method ;
public ChasingGirlTarget(Girl girl , String method ){
this.girl = girl ;
this.method = method ;
}
public void run(){
String name = Thread.currentThread().getName();
System.out.println(name + "喜欢上了" + this.girl.getName());
System.out.println(name + "开始追" + this.girl.getName());
synchronized(girl){
for( int i = 0 ; i < 30 ; i++){
System.out.println(name + this.method + "追" + this.girl.getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
然而,"追女仔"这一标签以及"追女朋友专用"的压缩包文件名称仍旧没有提供具体的IT技术或知识内容。在当前的指导下,我无法生成符合要求的IT专业内容。如果能提供更详细的IT相关的信息,例如软件类型、功能、技术实现...
《GBA图书仔2 0.9版》是一款专为Game Boy Advance(GBA)平台设计的电子书制作工具,其主要功能是将普通的TXT文本文件转换为GBA设备能够识别并阅读的格式。这款软件的出现,极大地扩展了GBA游戏机的功能,使其不再...
"六仔源码带数据库"是一个针对特定项目或应用的源代码集合,通常包含了实现某种功能或服务的完整代码结构。这里的"六仔"可能是该项目的昵称或者特定的命名,而“源码”指的是编写软件时用的各种编程语言(如Java、...
【标题】"六仔php源码"所涉及的是一个基于PHP编程语言的网站源代码,通常这类源码可能是一个小型的在线平台或者服务的后台系统。PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域中,它被用于服务器端处理,与...
宝仔视觉空间宝仔视觉空间宝仔视觉空间宝仔视觉空间
明仔PHP精品教程全集内容包含:明仔AJAX教程一看就会,明仔CSS+DIV一分钟学会,明仔PHP+SMARTY留言本(全注释版本),明仔PHP翻译,明仔万能换CSS样式,明仔半小时精通正则表达式,明仔十天学会SMARTY精选教程。
服装CAD类,可以打版,放吗,排料。可以1:1输出
【IVBD『大眼仔旭变声器内置教程』】是一个由IVBD团队精心整理并获得麒麟安全组授权的变声软件教程。这个教程主要针对的是"大眼仔旭变声器",一个广泛应用于游戏、语音聊天和娱乐场景的变声工具。通过这个教程,用户...
大陆仔天气预报是一个纯JS版的天气预报,调用了新浪的天气预报接口实现。具体功能如下: ● 支持根据用户IP来显示当地的天气预报 (使用了魔镜的 API) ● 支持用户搜索中国和国外城市的天气预报 ● 将能够查询...
明仔的php精品教程,包括ajax,div+css,正则,smarty
这个故事讲述了民间打拐勇士仔仔的事迹,他是一个退伍的武警战士,致力于打击人口贩卖,尤其是儿童拐卖。仔仔通过网络监控,识别出人贩子的暗语,并与他们周旋,协助警方解救被拐儿童。 1. **网络监控与反拐策略**...
【标题】"石器时代 吉仔 源代码"涉及的是一个名为“吉仔”的项目,该项目在石器时代版本中的源代码被提及。在IT领域,源代码是程序员用高级编程语言编写的原始程序,它直接反映了软件的设计思路和实现逻辑。"石器...
【死仔截图】是一款基于C#编程语言开发的截图软件,其主要功能是方便用户快速、高效地捕获屏幕图像。作为一个C#编程的实例,它展示了如何利用.NET框架中的图形处理类库来实现截图功能。以下是关于这款软件及其使用的...
明仔中文网の卖Q程序
免费版的录屏工具,非常好用。
【仔仔学数学源码 C#4】是一个专门为幼儿园及小学生设计的数学运算软件,旨在帮助孩子们学习和掌握万位数以内的基本算术运算。这个项目采用C#编程语言的第四版本(C#4)编写,展示了如何利用C#的强大功能来创建教育...
洪仔排课软件是一款专业好用的教学排课软件。软件适用于中小学以及各类辅导机构,可轻松解决跨年级、跨学科的排课设计,实现教学进度一致,教研活动、会议时间固定,单双周课、合班课、选修课、预排课、临时调课、...
明仔中文网ASP手机交友程序,改改就能用 支持微信访问和UC9。0访问 也可以电脑访问 1首页有几个连接要改 首页地址ssindex.asp 2传照片要上传到服务器 3在就是改搜索页面和注册页面的地名 4在就是用户详细资料...
大陆仔天气预报是一个纯JS版的天气预报,调用了新浪的天气预报接口实现。具体功能如下: ● 支持根据用户IP来显示当地的天气预报 (使用了魔镜的 API) ● 支持用户搜索中国和国外城市的天气预报 ● 将能够查询未来...