public class TestTicket {
public static void main(String[] args) {
Thread thread=new Thread("车站窗口");
Thread thread1=new Thread("网络");
Thread thread2=new Thread("黄牛");
new Thread(()->{
for (int i = 1; i <=10 ; i++) {
// String name=Thread.currentThread().getName();//获取当前线程的名称
System.out.println(Thread.currentThread().getName()+"抢到第"+i+"张票,还有"+(10-i)+"张票");
try {
Thread.sleep(500);//休眠
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
thread.start();
thread1.start();
thread2.start();
}
}
不太清楚你想问的
是这意思?
Thread t=new Thread(()->{
for (int i = 1; i <=10 ; i++) {
// String name=Thread.currentThread().getName();//获取当前线程的名称
System.out.println(Thread.currentThread().getName()+"抢到第"+i+"张票,还有"+(10-i)+"张票");
try {
Thread.sleep(500);//休眠
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
t.setName("名字");
t.start();
不是,你这相当于new了一个对象,然后赋值。我的想法是,如果有几个对象,调用String name=Thread.currentThread().getName();,是否可以直接取值?
@无-痕: 可以啊
Thread.currentThread().getName();
这就是取当前线程的名字啊
@蓝羽code:
Thread thread=new Thread("车站窗口");
Thread thread1=new Thread("网络");
Thread thread2=new Thread("黄牛");
new Thread(()->{
for (int i = 1; i <=10 ; i++) {
String name=Thread.currentThread().getName();//获取当前线程的名称
}).start();
取不了我上面赋予的名称 ,因为是相当于new的一个新对象。
@无-痕: 你下面也没用上面的线程啊
你不是重新new了一个线程嘛
@蓝羽code: thread.start();
thread1.start();
thread2.start();
@无-痕: 但是你这个三个线程里边儿没有实现呀,没有任何内容,什么都不会做,也不会打印东西。
@蓝羽code: 是的,我就想传进去。然后老师说我这相当于重新new了一个,所有我赋值的名称是传不进去的。
@无-痕: 你非要这样的话只能这样写
Thread thread=new Thread(() -> {
String name=Thread.currentThread().getName();//获取当前线程的名称
System.out.println(name);
},"车站窗口");
Thread thread1=new Thread(() -> {
String name=Thread.currentThread().getName();//获取当前线程的名称
System.out.println(name);
},"网络");
Thread thread2=new Thread(() -> {
String name=Thread.currentThread().getName();//获取当前线程的名称
System.out.println(name);
},"黄牛");
thread.start();
thread1.start();
thread2.start();
@蓝羽code: 是的 ,感觉还没有接口好