黑马程序员技术交流社区
标题:
多线程问题
[打印本页]
作者:
HM张勇
时间:
2013-4-9 11:27
标题:
多线程问题
本帖最后由 HM张勇 于 2013-4-9 20:57 编辑
上次看了版主和编辑的帖子,不及时结贴就会被扣分,好害怕扣技术分。我是在网吧上网,版主和编辑觉得可以结贴,望帮忙结贴,我上线的时间不是很多,辛苦版主和编辑了!
多线程的一个小问题,想不明白。
class Ticket implements Runnable
{
private int tick = 100;
public void run()
{
while (true)
{
if (tick>0)
{
System.out.println(Thread.currentThread().getName()+"....sale:"+tick--);//不明白Thread.currentThread().getName()什么意思?
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();//为什么要建立这个对象?
Thread t1 = new Thread(t);//不明白new Thread(t)括号中的t是什么意思?
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
复制代码
问题1:
System.out.println(Thread.currentThread().getName()+"....sale:"+tick--);
不明白Thread.currentThread().getName()什么意思?
问题2:
Ticket t = new Ticket();//为什么要建立这个对象?
Thread t1 = new Thread(t);//不明白new Thread(t)括号中的t是什么意思?
想不明白括号里的t是咋回事。
作者:
续圆凯
时间:
2013-4-9 11:52
1.Thread.currentThread().getName(); 表示获得当前线程的名称。
2.Ticket t = new Ticket() 这里建立一个Ticket对象 是因为线程的run方法在这个类中,如果没有这个对象,如何开启线程,如何对这个对象中的变量(tickets)的实例进行操作?
Thread t1 = new Thread(t); 中的t 是说明这是t的线程,操作的是t中的 变量(tickets)实例。
作者:
陈圳
时间:
2013-4-9 12:02
问题1:
System.out.println(Thread.currentThread().getName()+"....sale:"+tick--);
不明白Thread.currentThread().getName()什么意思?
这个是一个线程内的方法,返回原是一个线程对象,然后再调用它的getName()方法返回线程当前的名称。
问题2:
Ticket t = new Ticket();//为什么要建立这个对象?
Thread t1 = new Thread(t);//不明白new Thread(t)括号中的t是什么意思?
复制代码
因为是继承了Rnnable接口,所以线程要明确启动线程的执行方法体run在哪个类里,所以把实现了Runnable接口的类当作Thread对象的构造参数传递进来。
这样就知道要启动线程运行的哪个run方法了。
还有版主人都很不错的,只会提醒你,只要个人稍微主动一点,就没有关系,其实通过手机也可以进行这些结帖操作的。对这些不要过多担心。
还有个人建议,看你似乎只学到多线程,前面还有很多的课程没有学。所以技术分这一块,不用过多担心。
作者:
Asan
时间:
2013-4-9 12:44
楼上两位说的差不多了
作者:
庄生晓梦
时间:
2013-4-9 17:54
Thread.currentThread():获取当前线程对象。
getName():获取线程名称
不明白new Thread(t)括号中的t是什么意思?因为自定义的run方法所属的对象是Runnable接口的子类对象,所以要让线程去指定指定对象的run方法,就必须明确run
方法所属对象。
作者:
黄玉昆
时间:
2013-4-9 20:48
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2