多线程的创建
方式1: 继承thread 类
- 创建一个继承
thread 类的子类 - 重写
thread 类的run() 方法 - 创建
thread 的子类的实例对象 - 通过此对象调用
start() 方法.
class Mythread extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + "i:" + i);
}
if(i%20==0){
yield();
}
}
}
}
public class ThreadTest {
public static void main(String[] args) {
Mythread mythread = new Mythread();
mythread.start();
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + "i:" + i);
}
}
}
}
yield() :释放当前线程的执行权 join() :在线程a中调用线程b的join()方法,这是线程a进入阻塞状态.直到线程执行完,才会执行线程a.
2.线程的优先级
Thread.currentThread().getPriority()
Thread.currentThread().setPriority(10);
方式2:实现Runnable()接口
- 创建一个实现`Runnable接口的类.
- 实现类去实现Runnable接口中的方法
run() - 创建实现类的对象
- 将次对象作为参数传递到
Thread 类的构造器中,创建Thread 类的对象. - 通过
Thread 类的对象调用start() 方法.
实现代码:
class Thread1 implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + i);
}
}
}
}
public class MThread {
public static void main(String[] args) {
Thread1 thread1 = new Thread1();
Thread thread = new Thread(thread1);
thread.start();
}
}
|