并发意味着在同一时间进行多种计算,并发在现代编程应用广泛:
1.一个互联网的各个计算机
2.一个计算机运行的各个程序
3.一个计算机的多核处理器
并行编程的两种模型:
1.共享内存
2.信息交换
Process: a virtual computer
Thread: a virtual processor
time slice:时间切片,不同的时间段可以运行不同线程,线程可以中途停止、重新开始
在Java新建一个线程,可以采用匿名和非匿名的方式,匿名的可以减少代码量,但这个类只能实例化一次。
例子:
new Thread(new HelloRunnable()).start();
public class HelloRunnable implements Runnable {
public void run() {
System.out.println(“Hello from a thread!”);
}
}
new Thread(new Runnable() {
public void run() {
System.out.println(“Hello from a thread!”);
}
}).start();
进一步,还可以采用Java的lambda表达式,来简化
new Thread(() -> System.out.println(“Hello from a thread!”)).start();