使用:
Thread t1 = new Thread ();Thread t2 = new Thread ( new MyRunnable ());Thread t3 = new Thread ( " 这是我的名字 " );Thread t4 = new Thread ( new MyRunnable (), " 这是我的名字 " );
方法2 : 使⽤ Runnable 对象创建线程对象
public class ThreadDemo5 {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//业务代码
Thread t = Thread.currentThread();
System.out.println("执行任务" + t.getName());
}
});
thread.start();
}
}
方法3:创建线程对象,并命名
public class ThreadDemo10 {
public static void main(String[] args) {
//创建线程并设置线程名
Thread t = new Thread("线程1"){
@Override
public void run() {
//休眠线程
try {
Thread.sleep(60 * 60 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
//启动线程
t.start();
}
}
方法4 : 使⽤ Runnable 对象创建线程对象,并命名
public class ThreadDemo11 {
public static void main(String[] args) {
// 创建线程并设置线程名称
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 休眠1h
try {
Thread.sleep(60 * 60 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
},"Runnable-Thread");
thread.start();
}
}
public class ThreadDemo12 {
public static void main(String[] args) {
//1. 创建一个线程分组(女子100米比赛)
ThreadGroup group = new ThreadGroup("thread-group");
//2. 定义一个公共任务(线程的任务)
Runnable runTask = new Runnable() {
@Override
public void run() {
//业务(任务)
//生成一个1-3秒的随机数
int num = (1 + new Random().nextInt(3));
//跑了n秒之后到达终点
try {
Thread.sleep(num * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//得到执行此方法的线程
Thread t = Thread.currentThread();
System.out.println(t.getName() + "选手到达终点" + "s");
}
};
//3. 线程(运动员)
//创建选手1
Thread t1 = new Thread(group,runTask);
//创建选手2
Thread t2 = new Thread(group,runTask);
//创建选手3
Thread t3 = new Thread(group,runTask);
//开跑
t1.start();
t2.start();
t3.start();
//所有人全部到达终点之后宣布成绩
//在一个线程中所有代码都是从上往下执行的,只有执行上面的代码之后才会执行下面的代码
//判断此分组中的线程是否都执行完了,之后再去执行下一行代码
while(group.activeCount() != 0) {
}
System.out.println("宣布比赛成绩");
}
}