黑马程序员技术交流社区
标题:
面试题之 多线程_创建线程 难度系数:4.5
[打印本页]
作者:
wolfking0608
时间:
2016-10-9 13:12
标题:
面试题之 多线程_创建线程 难度系数:4.5
/*1 利用线程类的构造函数输出"创建线程4"。 备注当创建一个线程的时候标记为1再次创建一个线程的时候
* 标记为2所以输
* 出的"创建线程4"就是创建的第四个线程 2 在run方法中输出“线程X 计数Y”当执行次数达到6次的时候退出。
* 备注其中“线程X”为第X个线程“计数Y”为该线程的run方法执行了多少次
* 思路分析:
* 这个K必须是这几个线程共享的
* */
public class 线程题_创建线程 {
static int num = 6;
static int k = 1;
@SuppressWarnings("static-access")
public static void main(String[] args) {
for (int i = 1; i <= num; i++) {
try {
Thread.currentThread().sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
Thread t = new Thread("创建线程" + i) {
public void run() {
System.out.println(Thread.currentThread().getName());
System.out.println("线程"+k
+ " 计数" + k);
k++;
}
};
t.start();
}
}
public static void demo01() {
for (int i = 1; i <= num; i++) {
try {
Thread.currentThread().sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
final Thread t = new Thread("创建线程" + i) {
public void run() {
System.out.println(Thread.currentThread().getName()
+ " 计数" + k);
k++;
}
};
t.start();
}
}
}
class MyThread02 extends Thread {
static int num = 6;
static int k = 1;
private String name;
public MyThread02(String name) {
super();
this.name = name;
}
public void run() {
while (true) {
synchronized (MyThread02.class) {
if (num <= 0) {
break;
}
System.out.println(Thread.currentThread().getName() + " 计数"
+ k++);
}
}
}
}
作者:
寒冰夜
时间:
2016-10-9 14:02
太难了 看不懂啊 怎么办啊
作者:
读书可以当饭吃
时间:
2016-10-9 14:06
受教了,多线程真的比较难
作者:
勿忘`初心
时间:
2016-10-9 14:25
很给力{:2_35:}{:2_35:}
作者:
此间的少年
时间:
2016-10-9 16:47
我是菜鸟 表示看不懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2