1、AdminController文件
package com.controller;
import com.myThread.AdminThread;
import org.springframework.web.bind.annotation.*;
@RestController
@CrossOrigin
@RequestMapping("/admin")
public class AdminController{
@GetMapping("/{id}")
public long findById(@PathVariable Long id){
System.out.print("进来啦\n");
//创建一个线程对象
AdminThread t1 = new AdminThread();
//创建一个线程对象
AdminThread t2 = new AdminThread();
//开启第一个线程
t1.start();
//开启第二个线程
t2.start();
return id;
}
}
2、AdminThread文件
package com.myThread;
public class AdminThread extends Thread{
@Override
public void run() {
//线程开始之后执行的代码
for (int i = 0; i < 100; i++) {
System.out.print("线程"+i+"\n");
}
}
}
二、给线程起名
package com.controller;
import com.myThread.AdminThread;
import com.myThread.MyCallable;
import com.myThread.MyRunnable;
import org.springframework.web.bind.annotation.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
@RestController
@CrossOrigin
@RequestMapping("/admin")
public class AdminController{
@GetMapping("/{id}")
public long findById(@PathVariable Long id){
System.out.print("进来啦\n");
//创建一个线程对象
AdminThread t1 = new AdminThread("线程名称1");
//创建一个线程对象
AdminThread t2 = new AdminThread("线程名称2");
//这一种方便
//t1.setName("高铁");
//t2.setName("飞机");
//开启第一个线程
t1.start();
//开启第二个线程
t2.start();
return id;
}
}
package com.myThread;
public class AdminThread extends Thread{
public AdminThread() {}
public AdminThread(String name) {
super(name);
}
@Override
public void run() {
//线程开始之后执行的代码
for (int i = 0; i < 100; i++) {
System.out.print(getName()+"线程"+i+"\n");
}
}
}
线程睡眠
package com.myThread;
public class AdminThread extends Thread{
@Override
public void run() {
//线程开始之后执行的代码
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print(getName()+"线程"+i+"\n");
}
}
}
设置线程权重
@GetMapping("/{id}")
public long findById(@PathVariable Long id) throws InterruptedException {
System.out.print("进来啦\n");
//创建一个线程对象
AdminThread t1 = new AdminThread();
//创建一个线程对象
AdminThread t2 = new AdminThread();
//这一种方便(起名)
t1.setName("线程名称1");
t2.setName("线程名称2");
//优先级: 1 - 10 默认值:5
t1.setPriority(7);//权重
t2.setPriority(3);//权重
//查询权重
// System.out.print(t1.getPriority());
//开启第一个线程
t1.start();
//开启第二个线程
t2.start();
return id;
}