标题:线程问题
只看楼主
罗彬
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-173193-1-1.html




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

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