| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:线程问题
只看楼主 加入收藏
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
结帖率:100%
收藏
 问题点数:0 回复次数:7 
线程问题
我是刚学JAVA的,为什么下边的线程在运行时,两个线程卖的票都是各卖各的呀,不是一起在卖,我用的同一个对象ticket呀。为什么???请各位高手帮一下,谢谢了。
public class TicketTest
{
public static void main(String[] args)
{
Ticket ticket=new Ticket();
new Thread(ticket).start();
new Thread(ticket).start();

}
}
class Ticket implements Runnable
{
public void run()
{
int ticketNumber=100;
while(true)
{
if(ticketNumber>0)
{
System.out.println(Thread.currentThread().getName()+" :"+
ticketNumber);
ticketNumber--;
}
}
}
}
搜索更多相关主题的帖子: 线程 
2007-09-27 08:29
HK狼
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2007-9-9
收藏
得分:0 
class Ticket implements Runnable
{
static int ticketNumber=100;
public void run()
{
while(true)
{
if(ticketNumber>0)
{
System.out.println(Thread.currentThread().getName()+" :"+
ticketNumber);
ticketNumber--;
}
}
}
}

2007-09-27 09:23
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
[CODE]System.out.println(Thread.currentThread().getName()+" :"+
ticketNumber);
ticketNumber--;[/CODE]
这加把锁。。
2007-09-27 09:33
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
你可以用synchronized来实现同步,对需要使用的公共对象、方法加该关键字就能到达你要的效果了

I'm here, as always...
2007-09-27 09:38
HK狼
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2007-9-9
收藏
得分:0 
以下是引用罗彬在2007-9-27 8:29:21的发言:
我是刚学JAVA的,为什么下边的线程在运行时,两个线程卖的票都是各卖各的呀,不是一起在卖,我用的同一个对象ticket呀。为什么???请各位高手帮一下,谢谢了。
public class TicketTest
{
public static void main(String[] args)
{
Ticket ticket=new Ticket();
new Thread(ticket).start();
new Thread(ticket).start();

}
}
class Ticket implements Runnable
{
static int ticketNumber=100;
public void run()
{
while(true)
{
if(ticketNumber>0)
{
System.out.println(Thread.currentThread().getName()+" :"+
ticketNumber);
ticketNumber--;
}
}
}
}

我想lz说的应该不是同步问题 而是变量ticketNumber为什么两个线程中没有联系??

因为你定义成了实例变量 应该定义成 类变量(static) 这样ticketNumber就是所有实例共有的了。。。。


2007-09-27 09:54
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 

谢谢大家,我用static 解决了这个问题。


2007-09-27 13:08
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
你的数量太小了,看不太出来,卖10000张试试

可惜不是你,陪我到最后
2007-09-27 14:36
fqj793
Rank: 1
等 级:新手上路
威 望:2
帖 子:228
专家分:0
注 册:2006-12-9
收藏
得分:0 
访问的公共区域加一把锁!

知识改变命运!!!
2007-09-28 11:12
快速回复:线程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022275 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved