//创建线程方式一:继承Thread类,重写run()方法
public class ThreadPractice extends Thread {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("正在运行线程一__" + i);
}
}
public static void main(String[] args) {
for (int i = 0; i < 200; i++) {
System.out.println("正在运行 主线程__" + i);
}
/* xx.start()和xx.run()是不同的,前者是创建进程,后者是运行任务,前者线程与主线程同时进行,后者根据主线程中的顺序先后进行 */
ThreadPractice thread1 = new ThreadPractice();
thread1.start();
// thread1.run();
}
}
//创建线程方式二:实现Runnable接口
public class ThreadPractice3 implements Runnable {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("正在运行线程一__" + i);
}
}
public static void main(String[] args) {
for (int i = 0; i < 200; i++) {
System.out.println("正在运行 主线程__" + i);
}
ThreadPractice3 thread1 = new ThreadPractice3();
new Thread(thread1).start();
}
}
public class ThreadPractice4 implements Callable<Boolean> {
private String name;
private int age;
public ThreadPractice4(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public Boolean call() {
test test1 = new test();
test1.Show(name, age);
return true;
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
ThreadPractice4 thread1 = new ThreadPractice4("小白",15);
ThreadPractice4 thread2 = new ThreadPractice4("小黑",20);
ThreadPractice4 thread3 = new ThreadPractice4("小红",30);
//创建执行服务
ExecutorService service = Executors.newFixedThreadPool(3);
//提交执行
Future<Boolean> r1 = service.submit(thread1);
Future<Boolean> r2 = service.submit(thread2);
Future<Boolean> r3 = service.submit(thread3);
//获取结果
boolean rs1 = r1.get();
boolean rs2 = r2.get();
boolean rs3 = r3.get();
System.out.println(rs1);
System.out.println(rs2);
System.out.println(rs3);
//关闭服务
service.shutdownNow();
}
}
class test {
public void Show(String name, int age) {
System.out.println("这个人叫" + name + ",今年" + age + "岁。");
}
}
此方法总结为以下几步:
interface Ilove{
void love(int a);
}
//第一种,正常类
class Love implements Ilove {
@Override
public void love(int a) {
System.out.println("i love ->" + a);
}
}
public class TestLambda {
//第二种,静态内部类
static class Love2 implements Ilove {
@Override
public void love(int a) {
System.out.println("i love2 ->" + a);
}
}
public static void main(String[] args) {
Ilove ilove = new Love();
ilove.love(2);
Ilove ilove2 = new Love2();
ilove2.love(2);
//第三种,局部内部类
class Love3 implements Ilove {
@Override
public void love(int a) {
System.out.println("i love3 ->" + a);
}
}
Ilove ilove3 = new Love3();
ilove3.love(2);
//第四种,匿名内部类
Ilove ilove4 = new Ilove() {
@Override
public void love(int a) {
System.out.println("i love4 ->" + a);
}
};
ilove4.love(2);
//第五种,lambda表达式
Ilove ilove5 = (int a) -> {
System.out.println("i love5 ->" + a);
};
ilove5.love(2);
}
}
创建、就绪、运行、阻塞、死亡
线程操作:
synchronized