一、线程与进程
1、进程是程序(任务)执行过程,持有资源(共享内存,共享文件)和线程,进程是动态性的,如果程序没有执行就不算一个进程。
2、线程是系统中最小的执行单元,同一进程中有多个线程,线程共享进程的资源
2、线程是系统中最小的执行单元,同一进程中有多个线程,线程共享进程的资源
Java中创建现成的方式就不再赘述了,有两种:(1)继承Thread类,重写run()方法,(2)实现Runnable接口,重写run()方法。
二、yield()方法
在jdk文档中,yield()方法是这样描述的:暂停当前正在执行的线程对象,并执行其他线程。在多线程的情况下,由CPU决定执行哪一个线程,而yield()方法就是暂停当前的线程,让给其他线程(包括它自己)执行,具体由谁执行由CPU决定。
yield()方法实例
YieldRunnable.java
public class YieldRunnable implements Runnable{
public volatile boolean isRunning = true;
@Override
public void run() {
String name = Thread.currentThread().getName();
System.out.println(name + "开始执行!");
while(isRunning) {
for(int i = 1; i < 6; i++) {
System.out.println(name + "执行了[" + i + "]次");
//注意,yield是静态方法
Thread.yield();
}
}
System.out.println(name + "执行结束!");
}
}
执行的main函数
public static void main(String[] args) {
YieldRunnable runnable1 = new YieldRunnable();
YieldRunnable runnable2 = new YieldRunnable();
Thread thread1 = new Thread(runnable1, "线程1");
Thread thread2 = new Thread(runnable2, "线程2");
System.out.println("两个线程准备开始执行");
thread1.start();
thread2.start();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}