一、线程进程的基本概念
略……
二、线程调用方式
1、继承Thread类
public class Test {
public static void main(String[] args) {
// 执行多线程
MyThread thread = new MyThread();
thread.start();
// 执行主线程
for (int i = 0; i < 500; i++) {
System.out.println("我在执行主线程...");
}
}
}
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("我在执行多线程...");
}
}
}
2、实现Runnable接口
public class Test {
public static void main(String[] args) {
// 执行多线程
MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();
// 执行主线程
for (int i = 0; i < 500; i++) {
System.out.println("我在执行主线程...");
}
}
}
class MyThread implements Runnable {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("我在执行多线程...");
}
}
}
二、基本方法
1、sleep方法:使得当前线程休眠
2、join方法 :合并某个线程
public class TestJoin {
public static void main(String[] args) {
MyThread2 t1 = new MyThread2("线程t1");
t1.start();
try {
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < 10; i++) {
System.out.println("我是主线程");
}
}
}
class MyThread2 extends Thread {
MyThread2(String s) {
super(s);
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("我是" + getName());
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
3、yield方法:让出CPU,给其他线程执行的机会,当然只会让出一小会的时间
public class Test {
public static void main(String[] args) {
MyThread3 t1 =