回复 10楼 诸葛修勤
初始化一个 Thread数组,有10个数组元素。数组类型是Thread类。。。没有初始化的数组是不能用的。----------------解决方案--------------------------------------------------------
程序代码:
Thread[] threads = new Thread[10];
for (int i = 0; i < threads.length; i++) {
threads[i] = new Thread(new Ticket(i + 1));
threads[i].start();
}
那么 for 里面的? new Thread() for (int i = 0; i < threads.length; i++) {
threads[i] = new Thread(new Ticket(i + 1));
threads[i].start();
}
----------------解决方案--------------------------------------------------------
程序代码:
Thread[] threads = new Thread[10];
Thread threads[10];改成这句好像不行耶
----------------解决方案--------------------------------------------------------
回复 11楼 llooppzhang
程序代码:
public class main
{
public static void main(String args[])
{
yxf y = new yxf();
y.td_1.start();
}
}
class yxf implements Runnable
{
Thread td_1, td_2;
int i = 1;
int sum = 0;
yxf ()
{
td_1 = new Thread(this);
td_2 = new Thread(this);
}
@Override
public void run()
{
// TODO Auto-generated method stub
while ( i<=10 )
{
sum += i;
System.out.println(sum);
++i;
if (6 == i && Thread.currentThread() == td_1)
{
System.out.println("over thread td_1");
td_2.start();
}
}
}
}
{
public static void main(String args[])
{
yxf y = new yxf();
y.td_1.start();
}
}
class yxf implements Runnable
{
Thread td_1, td_2;
int i = 1;
int sum = 0;
yxf ()
{
td_1 = new Thread(this);
td_2 = new Thread(this);
}
@Override
public void run()
{
// TODO Auto-generated method stub
while ( i<=10 )
{
sum += i;
System.out.println(sum);
++i;
if (6 == i && Thread.currentThread() == td_1)
{
System.out.println("over thread td_1");
td_2.start();
}
}
}
}
----------------解决方案--------------------------------------------------------
结果:
1
3
6
10
15
over thread td_1 //这句运行后 td_1又没有正的结束掉啊 还是临界区的问题啊?
21
28
36
45
55
66
----------------解决方案--------------------------------------------------------
回复 12楼 诸葛修勤
new Thread(Runnable run);也就是说可以用任何实现runnable接口的类作为参数实例化Thread类----------------解决方案--------------------------------------------------------
回复 13楼 诸葛修勤
无论使用的数组属于什么类型,数组标识符实际都是指向真实对象的一个句柄。那些对象本身是在内存“堆”里创建的。堆对象既可“隐式”创建(即默认产生),亦可“显式”创建(即明确指定,用一个 new
表达式)。
这是think in java上的一句话,对你因该好理解一点。
也可以 arraytype[] array_name = { elements};隐性创建;
和C++上有点不同...
----------------解决方案--------------------------------------------------------
回复 15楼 诸葛修勤
td_1 和td_2共享i 和sum,从调试器上看好像是这样。对多线程的处理不是很理解。。。努力中。。。。 ----------------解决方案--------------------------------------------------------
回复 18楼 llooppzhang
刚接触java 没几天啊 有的概念还是点混拟或是没有概念 慢慢来了只能----------------解决方案--------------------------------------------------------
是不是java里面说有的对象都是在 堆上分配的?
----------------解决方案--------------------------------------------------------