进程与线程
进程 |
简单理解为一次程序一次执行(包括代码以及内存数据等等) |
线程 |
程序中单个顺序流称为控制成为进程(例如一个程序要边下载,边计算,边观看.....都可以称为一个线程) |
线程特点 |
一个进程有多个线程 |
多个线程分享cpu(并发的或以时间片的方式进行) |
共享内存(如多个线程访问同一对象) |
window系统查看进程与线程
创建线程的四种方法(创建Run方法)
继承Thread方法(最常用)
package ThreadLearn;
/**首先要继承Thread类才能创建线程*/
class ThreadCreate1 extends Thread{
/**定义一个run方法线程*/
@Override
public void run(){
for (int i=0;i<10;i++){
System.out.println(i);
}
}
public static void main(String[] args){
//利用start开始线程
new ThreadCreate1().start();
}
}
通过Thread()构造方法传递Runnable对象
package ThreadLearn;
/**首先要接入接口Runnable*/
class ThreadCreate1 implements Runnable{
/**定义一个run方法线程*/
@Override
public void run(){
for (int i=0;i<10;i++){
System.out.println(i);
}
}
public static void main(String[] args){
//直接调用开始线程
ThreadCreate1 threadCreate1=new ThreadCreate1();
threadCreate1.run();
}
}
使用匿名类实现Runnable(不推荐)
package ThreadLearn;
public class ThreadCreate extends Thread {
public static void main(String[] args) {
new Thread() {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}.start();
}
}
使用Lambda表达式
package ThreadLearn;
public class ThreadCreate extends Thread {
public static void main(String[] args) {
new Thread(()->{for (int i=0;i<10;i++){
System.out.println(i);
}}
) .start();
}
}